Résolution des problèmes

Comment corriger l'erreur de vérification du certificat

Erreur [curl] 77 : erreur dans la configuration du certificat de vérification de l’emplacement : CAfile apparaît lorsque vous envoyez une requête au serveur Xsolla à l’aide de Pay Station SDK.

Nous activons la vérification des certificats SSL et utilisons l’ensemble des certificats d’autorités de certification par défaut fourni par votre système d’exploitation. Cependant, tous les systèmes ne disposent pas d’un ensemble de certificats d’autorité de certification sur le disque. Par exemple, Windows et OS X ne disposent pas d’un emplacement commun pour les ensembles de certificats d’autorité de certification.

Il existe plusieurs façons de résoudre ce problème :

  • Vous pouvez désactiver la vérification des certificats dans l’environnement de développement en utilisant ce code :

Copy
Full screen
Small screen
<?php

use Xsolla\SDK\API\XsollaClient;

$client = XsollaClient::factory(array(
'merchant_id' => MERCHANT_ID,
'api_key' => API_KEY
));
$client->setDefaultOption('ssl.certificate_authority', false);
Note
Vous devez également tester ce problème dans l’environnement de production.
  • Fournissez un certificat fiable (recommandé). Assurez-vous que le fichier des certificats d'autorités de certification existe et indiquez son chemin d'accès avec le code ci-dessous, où :
    • /path/to/file est un chemin vers le fichier des certificats d'autorités de certification
    • ssl.certificate_authority est le nom du fichier des certificats d'autorités de certification
Copy
Full screen
Small screen
<?php

use Xsolla\SDK\API\XsollaClient;

$client = XsollaClient::factory(array(
'merchant_id' => MERCHANT_ID,
'api_key' => API_KEY
));
$сlient->setDefaultOption('ssl.certificate_authority', '/path/to/file');

Dans Windows, le fichier des certificats d’autorités de certification peut se trouver dans les dossiers suivants :

  • C:\windows\system32\curl-ca-bundle.crt
  • C:\windows\curl-ca-bundle.crt

S’il n’y a pas de certificat aux emplacements spécifiés, utilisez le certificat fourni par Mozilla.

Dans certaines versions de PHP pour Windows, la configuration des chemins vers les certificats via le code peut être un problème. Pour le résoudre, téléchargez le fichier cacert.pem et spécifiez le chemin d’accès à ce dernier dans le fichier de configuration php.ini.

Copy
Full screen
Small screen
    curl.cainfo=c:/cacert.pem
    
    Cet article vous a été utile ?
    Merci !
    Que pouvons-nous améliorer ? Message
    Nous sommes désolés de l'apprendre
    Dites-nous pourquoi vous n'avez pas trouvé cet article utile. Message
    Merci pour votre commentaire !
    Nous examinerons votre message et l'utiliserons pour améliorer votre expérience.
    Masquer

    Comment corriger l'erreur d'authentification

    Une erreur avec le code INVALID_SIGNATURE et le message Authorization header not found in Xsolla webhook request apparaît si PHP-CGI pour Apache ne passe pas par défaut le nom d’utilisateur/mot de passe HTTP Basic à PHP. Pour résoudre ce problème, ajoutez la chaîne suivante dans le fichier de configuration .htaccess ou httpd.conf Apache :

    Copy
    Full screen
    Small screen
    <?php
    
    RewriteEngine On
    RewriteCond %{HTTP:Authorization} ^(.+)$
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
    Cet article vous a été utile ?
    Merci !
    Que pouvons-nous améliorer ? Message
    Nous sommes désolés de l'apprendre
    Dites-nous pourquoi vous n'avez pas trouvé cet article utile. Message
    Merci pour votre commentaire !
    Nous examinerons votre message et l'utiliserons pour améliorer votre expérience.
    Masquer

    Comment corriger une adresse IP non valide

    Si vous utilisez le Pay Station PHP SDK, Xsolla vérifie les adresses IP à partir desquelles les webhooks ont été envoyés. Le code d’erreur INVALID_CLIENT_IP est renvoyé dans l’un des cas suivants :

    • le serveur webhook a été testé à partir d’un localhost dans un environnement de développement ;
    • votre application fonctionnait dans un environnement de production derrière un serveur proxy, par exemple, un répartiteur de charge.

    Si vous êtes dans un environnement de développement, désactivez la vérification de l’adresse IP avec ce code :

    Copy
    Full screen
    Small screen
    <?php
    use Xsolla\SDK\Webhook\WebhookServer;
    $webhookServer = WebhookServer::create($callback, PROJECT_KEY);
    $webhookServer->start($webhookRequest = null, $authenticateClientIp = false);
    

    Si vous utilisez un serveur proxy, choisissez l’une des solutions suivantes :

    • Ajoutez l’adresse IP du proxy inverse au serveur webhook avec le code suivant (recommandé) :

    Copy
    Full screen
    Small screen
    <?php
    
    use Xsolla\SDK\Webhook\WebhookServer;
    use Symfony\Component\HttpFoundation\Request;
    
    $request = Request::createFromGlobals();
    $request->setTrustedProxies(array('YOUR_PROXY_SERVER_IP_OR_CIDR'));
    
    $webhookServer = WebhookServer::create($callback, PROJECT_KEY);
    $webhookServer->start();
    

    • Ajoutez l'adresse IP du proxy à la liste des autorisations.

    Lisez plus d’informations sur l’utilisation d’un serveur proxy dans la documentation Simfony.

    Cet article vous a été utile ?
    Merci !
    Que pouvons-nous améliorer ? Message
    Nous sommes désolés de l'apprendre
    Dites-nous pourquoi vous n'avez pas trouvé cet article utile. Message
    Merci pour votre commentaire !
    Nous examinerons votre message et l'utiliserons pour améliorer votre expérience.
    Masquer
    Dernière mise à jour: 7 Octobre 2024

    Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.

    Signaler un problème
    Nous améliorons continuellement notre contenu grâce à vos commentaires.
    Indiquez votre adresse e-mail pour un suivi
    Merci pour votre commentaire !