3

ここで提供されたコードを使用して、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

だから私の質問はこれです、

  1. リクエストが作成され、そこにエラーが表示されていないことがわかるので、適切なリクエストを送信していませんか?

  2. サーバーから正しい応答を得るために何かできますか?

  3. cURL リクエストが行われたときにサーバーがエラー コードで応答するのはいつですか?

お時間をいただき、ありがとうございました。ほんとうにありがとう。

4

1 に答える 1

6

さて、このような大きな問題の解決策は非常に簡単でした。

eid="200" と sharedsecret="test" を設定します。テスト アカウントの資格情報はどれですか。

私の場合、元のマーチャント アカウントの資格情報を使用していました。

于 2013-04-25T09:10:39.493 に答える