SDKの問題のトラブルシューティング手法

高度な設定については、ハウツーをご覧ください。

証明書の検証エラーのトラブルシューティング手法

エラー[curl] 77:位置確認証明書の設定でエラーが発生しました:CAfileは、決済ステーション SDKを使用してエクソラサーバにリクエストを送信したときなど、トークンを取得したときに表示されます。

デフォルトでは、SSL証明書の検証が有効になっており、オペレーティングシステムが提供するデフォルトのCAバンドルが使用されます。しかし、すべてのシステムがディスク上にCAバンドルを持っているわけではありません。例えば、WindowsとOS Xでは、CAバンドルの共通の場所は1つではありません。

この問題を解決するには、いくつかの方法があります:

  • 開発環境で証明書の検証を無効にすることができます。このコードを使用します:

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

この記事は役に立ちましたか?
ありがとうございます!
改善できることはありますか? メッセージ
申し訳ありません
この記事が参考にならなかった理由を説明してください。 メッセージ
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
非表示

認証のエラーのトラブルシューティング手法

がデフォルトで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エラーコードは、以下のいずれかの場合に返されます:

  • ウェブフックサーバーが開発環境のローカルホストからテストされた場合
  • アプリがロードバランサーなどのプロキシサーバーの後ろで本番環境で動作していた。

開発環境の場合は、このコードで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ドキュメンテーションをご覧ください。

この記事は役に立ちましたか?
ありがとうございます!
改善できることはありますか? メッセージ
申し訳ありません
この記事が参考にならなかった理由を説明してください。 メッセージ
ご意見ありがとうございました!
あなたのメッセージを確認し、体験を向上させるために利用させていただきます。
非表示
最終更新日: 2021年9月21日

誤字脱字などのテキストエラーを見つけましたか? テキストを選択し、Ctrl+Enterを押します。

問題を報告する
当社は常にコンテンツを見直しています。お客様のご意見は改善に役立ちます。
フォローアップ用のメールをご提供してください
ご意見ありがとうございました!