Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Klarna签出在响应中返回http_状态_代码500内部服务器错误_Php_Magento_Curl_Httprequest_Httpresponse - Fatal编程技术网

Php Klarna签出在响应中返回http_状态_代码500内部服务器错误

Php Klarna签出在响应中返回http_状态_代码500内部服务器错误,php,magento,curl,httprequest,httpresponse,Php,Magento,Curl,Httprequest,Httpresponse,我正在尝试使用他们提供的代码实现klarna签出 按照此链接的指示实施流程-> 我正在使用docs/examples文件夹中的代码,我已将库(src文件夹)放置在正确的路径中。我在创建测试帐户时提供了eid和共享机密以及由klarna提供的存储ID和共享机密 我已经替换了所有文件中的所有eid和共享scret,并且正确地更改了文件中的链接 i、 e.example.com至mywebsiteurl.com 在正确设置所有内容之后,当我单击docs/examples/checkout.php时,

我正在尝试使用他们提供的代码实现klarna签出

按照此链接的指示实施流程->

我正在使用docs/examples文件夹中的代码,我已将库(src文件夹)放置在正确的路径中。我在创建测试帐户时提供了eid和共享机密以及由klarna提供的存储ID和共享机密

我已经替换了所有文件中的所有eid和共享scret,并且正确地更改了文件中的链接

i、 e.example.com至mywebsiteurl.com

在正确设置所有内容之后,当我单击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()
        );
    }
}
*如果服务器响应错误代码,则引发异常。
*
*@param Klarna_Checkout_HTTP_Response$result HTTP响应对象
*
*@抛出Klarna\u签出\u HTTP\u状态\u异常
*@返回无效
*/
受保护的函数验证响应(Klarna\u Checkout\u HTTP\u Response$result)
{
//收到错误状态代码。引发异常。
如果($result->getStatus()>=400&&$result->getStatus()getData(),$result->getStatus()
);
}
}
收到的错误是

致命错误:未捕获异常“Klarna\u Checkout\u ConnectorException” 消息“{”http_status_code“:500,“http_status_message:“Internal” 服务器错误,“内部_消息”:“}” klarna/docs/examples/src/klarna/Checkout/BasicConnector.php:212

所以我的问题是,

  • 我是否发送了一个正确的请求,因为我可以看到请求是正确的 是否已创建,并且没有给出错误

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

  • 当执行cURL请求时,服务器何时响应错误代码 制造的


  • 谢谢你的时间和帮助。我真的很感激。

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

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


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

    我怎么知道?通过询问Klarna的支持团队:)真是太遗憾了。文档中没有写我应该为Klarna Checkout Testdrive使用默认凭据集的地方。我为此浪费了一天多的时间!如果您需要实现高级Klarna集成,并且使用的技术没有现成的API包装器,那么他们的支持/文档将非常糟糕。我使用的是Ruby on Rails,他们完全不支持如何编写API包装器——我必须阅读C#和PHP代码并将其翻译成Ruby。。。
    $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}';
    
     * 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()
            );
        }
    }