我正在尝试使用他们提供的代码来实现klarna校验here.
按照此链接的指示实现流程->
https://docs.klarna.com/en/getting-started
我正在使用docs/examples文件夹中的代码,我已经将库(src文件夹)放置在正确的路径中,当我创建一个测试帐户here.
// Merchant ID
$eid = 'eid';
// Shared secret
$sharedSecret = 'sharedsecret';
我已经替换了所有文件中的所有eid和共享scret,并且正确地更改了文件中的链接,
即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\u status”代码:500,“http\u status”消息:“internal
服务器错误,“内部消息”:“}”
klarna/docs/examples/src/klarna/checkout/basicconnector.php:212
所以我的问题是,
我没有发送正确的请求,因为我可以看到请求是
已经创建,没有错误吗?
我能做任何事情来从服务器得到正确的响应吗?
当curl请求是
制造的?
谢谢你的时间和帮助。我真的很感激。
最佳答案
嗯,解决这样一个大问题很简单。
设置eid=“200”和sharedsecret=“test”。它们是测试帐户凭据。
在我的情况下,我使用我原来的商户帐户凭据。
关于php - Klarna Checkout响应中返回http_status_code 500 Internal Server Error,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16184231/