SDK 오류 문제 해결 방법

여기에는 엑솔라 PHP SDK에서 전달하는 가장 자주 발생하는 오류를 처리하기 위한 몇 가지 팁이 나와 있습니다.
모두 펼치기
모두 접기
인증서 확인 오류 문제 해결 방법

오류 [curl] 77: 위치 확인 인증서를 설정하는 동안 오류 발생: CAfile은 엑솔라 서버에 페이 스테이션 SDK를 이용해 요청을 전송하면 나타납니다(예: 토큰 가져올 때).

기본적으로 당사는 SSL-인증서 확인을 활성화하고 귀하의 운영 체제가 제공하는 기본 CA 번들을 사용합니다. 그러나 모든 시스템이 디스크에 CA 번들을 가지고 있지는 않습니다. 예를 들어, Windows 및 OS X는 CA 번들에 대한 하나의 공통 위치가 없습니다.

이 문제를 해결하는 몇 가지 방법:

  • 개발 환경에서 인증서 확인을 비활성화합니다. 사용할 코드:

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:
프로덕션 환경에서 이 문제를 테스트할 필요도 있습니다.

  • 신뢰할 수 있는 인증서를 제공합니다. CA 파일이 존재함을 확인하고 파일 경로를 아래 코드와 지정합니다.
    • /path/to/file이 CA 파일의 경로인 경우
    • ssl.certificate_authority가 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');

Windows에서 CA 파일이 위치할 수 있는 폴더:

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

지정된 장소에 인증서가 없는 경우 Mozilla가 제공하는 인증서를 사용할 수 있습니다.

Windows에서 PHP의 어떤 버전은 코드를 이용한 인증서로 가는 경로 구성이 문제가 될 수 있습니다. 해결하려면 cacert.pem 파일을 다운로드하고 이 파일의 경로를 php.ini 구성 파일에서 지정하십시오.

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

숨기기
인증 오류 문제 해결 방법

Apache의 PHP-CGI가 HTTP Basic user/pass를 PHP에 기본값으로 전달하지 않는 경우 INVALID_SIGNATURE 코드 오류 및 Authorization header not found in Xsolla webhook request 메시지가 나타납니다. 해결하려면 다음 문자열을 .htaccess 또는 httpd.conf Apache 구성 파일에 추가하세요.

Copy
Full screen
Small screen
<?php

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

숨기기
잘못된 IP 주소 문제 해결 방법

페이 스테이션 PHP SDK를 사용하는 경우, 기본적으로 엑솔라는 웹훅이 전송된 IP 주소를 확인합니다. INVALID_CLIENT_IP 오류 코드가 다음 경우 중 하나로 인해 반환될 수 있습니다.

  • 웹훅 서버가 개발 환경의 localhost에서 테스트 된 경우
  • 귀하의 앱이 프록시 서버 뒤의 프로덕션 환경에서 작동한 경우(예: 부하 분산 장치)

개발 환경에 있는 경우 다음 코드로 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 주소를 허용 목록에 추가합니다.

Simfony 문서에서 프록시 서버와 작업에 대한 자세한 정보를 참조하십시오.

숨기기