Solução de problemas
Erro [curl] 77: erro ao configurar o local de verificação de certificado: CAfile aparece quando você envia uma solicitação ao servidor Xsolla usando o Pay Station SDK.
Nós ativamos a verificação de certificado SSL e usamos o conjunto CA padrão fornecido pelo seu sistema operacional. Porém, nem todos os sistemas possuem um conjunto CA em disco. Por exemplo, o Windows e o OS X não possuem um único local comum para conjuntos CA.
Há diversas maneiras de solucionar esse problema:
- Você pode desativar a verificação de certificado quando estiver no ambiente de desenvolvimento usando esse código:
- 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);
- Forneça um certificado confiável (recomendado). Certifique-se de que o arquivo CA existe e especifique o caminho para ele com o código abaixo, onde:
/path/to/file
é o local para o arquivo CAssl.certificate_authority
é o nome do arquivo CA
- 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');
No Windows, o arquivo CA pode ser encontrado nas seguintes pastas:
C:\windows\system32\curl-ca-bundle.crt C:\windows\curl-ca-bundle.crt
Se não houver um certificado nos locais especificados, você pode usar um certificado fornecido pelo Mozilla.
Em algumas versões do PHP no Windows, configurar diretórios para os certificados via código pode ser um problema. Para resolver isso, baixe o arquivo php.ini
.
curl.cainfo=c:/cacert.pem
Um erro com o código .htaccess
ou httpd.conf
:
- php
<?php
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
Se você usar o Pay Station PHP SDK, a Xsolla confere os endereços IP dos quais os webhooks foram enviados. O código de erro
- o servidor webhook foi testado a partir de um localhost em um ambiente de desenvolvimento
- seu aplicativo estava funcionando em um ambiente de produção por trás de um servidor proxy. Ex.: um balanceador de carregamento
Se você estiver em um ambiente de desenvolvimento, desative o endereço IP entrando com esse código:
- php
<?php
use Xsolla\SDK\Webhook\WebhookServer;
$webhookServer = WebhookServer::create($callback, PROJECT_KEY);
$webhookServer->start($webhookRequest = null, $authenticateClientIp = false);
Se você estiver usando um servidor proxy, escolha uma das seguintes soluções:
- Adicione o endereço IP proxy reserva ao servidor webhook com o seguinte código (recomendado):
- 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();
- Adicione o endereço IP proxy na lista de permissões.
Leia mais informações sobre como trabalhar com um servidor proxy na documentação Simfony.
Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.