ここで提供されたコードを使用して、klarna チェックアウトを実装しようとしています。
このリンクの指示に従ってプロセスを実装する -> https://docs.klarna.com/en/getting-started
docs/examples フォルダー内のコードを使用しています。ライブラリー (src フォルダー) を適切なパスに配置し、ここでテスト アカウントを作成したときに klarna によって提供されたストア ID と共有シークレットを使用して eid と共有シークレットを提供しました。
// Merchant ID
$eid = 'eid';
// Shared secret
$sharedSecret = 'sharedsecret';
すべてのファイルの eid と共有シークレットをすべて置き換え、ファイル内のリンクも適切に変更しました。
つまり、example.com から mywebsiteurl.com へ
$create['purchase_country'] = 'SE';
$create['purchase_currency'] = 'SEK';
$create['locale'] = 'sv-se';
$create['merchant']['id'] = $eid;
$create['merchant']['terms_uri'] = 'http://example.com/terms.html';
$create['merchant']['checkout_uri'] = 'http://example.com/checkout.php';
$create['merchant']['confirmation_uri']
= 'http://example.com/confirmation.php' .
'?sid=123&klarna_order={checkout.order.uri}';
// You can not receive push notification on non publicly available uri
$create['merchant']['push_uri'] = 'http://example.com/push.php' .
'?sid=123&klarna_order={checkout.order.uri}';
すべてを適切に設定した後、docs/examples/checkout.php をクリックすると、サーバーがエラー コードで応答しているため、例外がスローされます。例外は、以下のコードによって BasicConnector.php によってスローされます。
* Throw an exception if the server responds with an error code.
*
* @param Klarna_Checkout_HTTP_Response $result HTTP Response object
*
* @throws Klarna_Checkout_HTTP_Status_Exception
* @return void
*/
protected function verifyResponse(Klarna_Checkout_HTTP_Response $result)
{
// Error Status Code recieved. Throw an exception.
if ($result->getStatus() >= 400 && $result->getStatus() <= 599) {
throw new Klarna_Checkout_ConnectorException(
$result->getData(), $result->getStatus()
);
}
}
受け取ったエラーは
致命的なエラー: klarna/docs/examples/src/Klarna/Checkout/BasicConnector 内のメッセージ '{"http_status_code":500,"http_status_message":"Internal Server Error","internal_message":""}' を含むキャッチされない例外 'Klarna_Checkout_ConnectorException' .php:212
だから私の質問はこれです、
リクエストが作成され、そこにエラーが表示されていないことがわかるので、適切なリクエストを送信していませんか?
サーバーから正しい応答を得るために何かできますか?
cURL リクエストが行われたときにサーバーがエラー コードで応答するのはいつですか?
お時間をいただき、ありがとうございました。ほんとうにありがとう。