我正在尝试使用他们在此处提供的代码来实现 klarna 结帐。
按照此链接的指示实施流程-> https://docs.klarna.com/en/getting-started
我正在使用 docs/examples 文件夹中的代码,我已将库(src 文件夹)放在正确的路径中,并在我在这里创建测试帐户时提供了 eid 和共享密钥以及 klarna 提供的存储 ID 和共享密钥。
// 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 请求时,服务器何时响应错误代码?
感谢您的时间和帮助。对此,我真的非常感激。