【问题标题】:Klarna checkout returning http_status_code 500 Internal Server Error in responseKlarna 结帐返回 http_status_code 500 内部服务器错误作为响应
【发布时间】:2013-04-24 05:44:32
【问题描述】:

我正在尝试使用他们提供的代码来实现 klarna 结帐here.

按照此链接的指示实施流程 -> https://docs.klarna.com/en/getting-started

我正在使用 docs/examples 文件夹中的代码,我已将库(src 文件夹)放在正确的路径中,并在创建测试时提供了 eid 和共享密钥以及 klarna 提供的存储 ID 和共享密钥账号here.

// 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_Checkout_ConnectorException” 带有消息'{“http_status_code”:500,“http_status_message”:“内部 服务器错误","internal_message":""}' in klarna/docs/examples/src/Klarna/Checkout/BasicConnector.php:212

所以我的问题是这样的,

  1. 我是否没有发送正确的请求,因为我可以看到请求是 创建并没有给出错误?

  2. 我可以做些什么来从服务器获得正确的响应吗?

  3. 当 cURL 请求发生时,服务器何时响应错误代码 做了?

感谢您的宝贵时间和帮助。我真的很感激。

【问题讨论】:

    标签: php magento curl httprequest httpresponse


    【解决方案1】:

    嗯,这么大的问题的解决方案很简单。

    设置 eid="200" 和 sharedsecret="test"。哪些是测试帐户凭据。

    就我而言,我使用的是原始商家帐户凭据。

    【讨论】:

    • 我怎么知道?
    • 通过询问 Klarna 的支持团队 :) 真的很遗憾。文档中没有写到我应该为 Klarna Checkout Testdrive 使用一组默认凭据。
    • 我为此浪费了一天多!如果您需要实现高级 Klarna 集成并且您使用的技术没有现成的 API 包装器,那么他们的支持/文档​​会很糟糕。我正在使用 Ruby on Rails,他们完全不支持如何编写 API 包装器 - 我必须阅读 C# 和 PHP 代码并将其翻译成 Ruby...
    猜你喜欢
    • 2012-05-05
    • 2016-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2013-07-24
    • 1970-01-01
    相关资源
    最近更新 更多