Résolution des problèmes
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 :
- php
<?php
use Xsolla\SDK\API\XsollaClient;
$client = XsollaClient::factory(array(
'merchant_id' => MERCHANT_ID,
'api_key' => API_KEY
));
$client->setDefaultOption('ssl.certificate_authority', false);
- 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 certificationssl.certificate_authority
est le nom du fichier des certificats d'autorités de certification
- php
<?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 php.ini
.
curl.cainfo=c:/cacert.pem
Une erreur avec le code .htaccess
ou httpd.conf
Apache :
- php
<?php
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
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
- 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 :
- php
<?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é) :
- php
<?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.
Faute de frappe ou autre erreur dans le texte ? Sélectionnez le texte concerné et appuyez sur Ctrl+Entée.