Solução de problemas

Como corrigir o erro de verificação de certificado

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:

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);
Observação
Você também precisa testar esse problema no ambiente de produção.
  • 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 CA
    • ssl.certificate_authority é o nome do arquivo CA
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');

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 cacert.pem e especifique o local no arquivo de configuração php.ini.

Copy
Full screen
Small screen
    curl.cainfo=c:/cacert.pem
    
    Este artigo foi útil?
    Obrigado!
    Podemos melhorar alguma coisa? Mensagem
    Que pena ouvir isso
    Explique porque este artigo não foi útil para você. Mensagem
    Obrigado pelo seu feedback!
    Avaliaremos sua mensagem e a usaremos para melhorar sua experiência.
    Ocultar

    Como corrigir o erro de autenticação

    Um erro com o código INVALID_SIGNATURE e a mensagem Authorization header not found in Xsolla webhook request aparece se PHP-CGI para Apache não passar o HTTP Basic user/passar para PHP por padrão. Para resolver, adicione a seguinte cadeia de caracteres ao arquivo de configuração Apache .htaccess ou httpd.conf:

    Copy
    Full screen
    Small screen
    <?php
    
    RewriteEngine On
    RewriteCond %{HTTP:Authorization} ^(.+)$
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    
    Este artigo foi útil?
    Obrigado!
    Podemos melhorar alguma coisa? Mensagem
    Que pena ouvir isso
    Explique porque este artigo não foi útil para você. Mensagem
    Obrigado pelo seu feedback!
    Avaliaremos sua mensagem e a usaremos para melhorar sua experiência.
    Ocultar

    Como corrigir o endereço IP inválido

    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 INVALID_CLIENT_IP é retornado em um dos seguintes casos:

    • 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:

    Copy
    Full screen
    Small screen
    <?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):

    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();
    

    • 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.

    Este artigo foi útil?
    Obrigado!
    Podemos melhorar alguma coisa? Mensagem
    Que pena ouvir isso
    Explique porque este artigo não foi útil para você. Mensagem
    Obrigado pelo seu feedback!
    Avaliaremos sua mensagem e a usaremos para melhorar sua experiência.
    Ocultar
    Última atualização: 7 de Outubro de 2024

    Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.

    Relatar um problema
    Nós sempre avaliamos nossos conteúdos. Seu feedback nos ajuda a melhorá-los.
    Forneça um e-mail para que possamos responder
    Obrigado pelo seu feedback!