Как устранить проблемы с SDK

Узнайте о дополнительных настройках из наших инструкций.

Как устранить ошибку проверки сертификата

Ошибка [curl] 77: Ошибка настройки сертификата проверки местоположения: CAfile может появляться при отправке запроса с использованием Pay Station SDK на сервер Иксоллы, к примеру, при получении токена.

По умолчанию включена проверка SSL сертификата и используются сертификаты, предоставленные операционной системой. Однако не все системы имеют сертификаты на диске. К примеру, Windows и OS X не имеют единого расположения для цепочек сертификатов.

Есть несколько путей решения данной проблемы:

  • В режиме разработки отключить проверку сертификата, используя следующий код:

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
Необходимо дополнительно тестировать данную задачу в боевом режиме.

  • Предоставить корректный сертификат (рекомендуется). Убедитесь, что файл сертификата существует и укажите путь до него с помощью приведенного ниже кода, где:
    • /path/to/file — путь до файла сертификата;
    • ssl.certificate_authority — название файла сертификата.

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

Для операционной системы Windows сертификат может находиться в следующих каталогах:

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

Если вы не имеете данного сертификата в указанных местах, вы можете использовать один из сертификатов Mozilla.

В некоторых версиях PHP на Windows существует проблема с настройкой путей к сертификатам через код. Для ее решения необходимо скачать файл cacert.pem и прописать путь к этому файлу непосредственно в конфигурационном файле php.ini:

Copy
Full screen
Small screen
curl.cainfo=c:/cacert.pem

Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Скрыть

Как устранить ошибку авторизации

Ошибка с кодом INVALID_SIGNATURE и сообщением Authorization header not found in Xsolla webhook request может появляться из-за того, что PHP-CGI под Apache не передает HTTP Basic user/pass в PHP по умолчанию. Чтобы это заработало, добавьте следующую строку в конфигурационный файл Apache .htaccess или httpd.conf:

Copy
Full screen
Small screen
<?php

RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.+)$
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Скрыть

Как исправить невалидный IP-адрес

По умолчанию, при использовании Pay Station PHP SDK проверяются IP-адреса, с которых были отправлены оповещения. Код ошибки INVALID_CLIENT_IP может возвращаться в одном из следующих случаев:

  • при локальном тестировании сервера оповещений в среде разработки;
  • при работе приложения в боевом режиме через прокси-сервер (например, через балансировщик нагрузки).

Если вы находитесь в режиме разработки, отключите проверку IP-адреса, используя следующий код:

Copy
Full screen
Small screen
<?php

use Xsolla\SDK\Webhook\WebhookServer;

$webhookServer = WebhookServer::create($callback, PROJECT_KEY);
$webhookServer->start($webhookRequest = null, $authenticateClientIp = false);

Если вы используете прокси-сервер, вы можете использовать одно из следующих решений:

  • Добавить обратный IP-адрес вашего прокси-сервера на сервер оповещений, используя код (рекомендуется):

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

  • Вручную добавить IP-адрес прокси-сервера в список разрешений.

Более подробная информация о настройке работы с прокси-сервером приведена в документации Symfony.

Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Скрыть
Последнее обновление: 17 июня 2021

Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.

Сообщите о проблеме
Мы постоянно улучшаем качество нашей документации. Ваш отзыв поможет нам в этом.
Укажите email-адрес, чтобы мы могли связаться с вами
Спасибо за обратную связь!