对于我的 Amazon Pay 与 NodeJs SDK 的集成,在我到达 completeCheckoutSession 之前,一切似乎都运行良好。当我调用 completeCheckoutSession 时,调用成功并且似乎可以正常工作,但我从未收到确认电子邮件,说明订单已处理并且在卖家中心查看“付款状态”仍标记为“打开”。此外,我在 24 小时后收到一封电子邮件,指出订单已取消。
这是我使用 NodeJs SDK 调用 completeCheckoutSession 的代码:
const testPayClient = new Client.WebStoreClient(config)
const checkoutSessionId = requestBody.checkoutSessionId
const purchasePrice = requestBody.productInfo.price
const payload = {
chargeAmount: {
amount: `${purchasePrice}`,
currencyCode: 'USD'
}
}
let apiResponse = await testPayClient.completeCheckoutSession(checkoutSessionId, payload)
price 和 checkoutSessionId 都来自前端,并且我已验证 checkoutSessionId 与传递给 getCheckoutSession 和 updateCheckoutSession 的相同。
这是我控制台日志 apiResponse.data 时返回的数据对象。为简洁起见,我删除了空值。此外,如果我要记录整个“apiResponse”对象,我收到的状态码是 200。
{
checkoutSessionId: "not sure I should expose this, but it's here.",
statusDetails: {
state: 'Completed',
lastUpdatedTimestamp: '20211124T141939Z'
},
chargePermissionId: 'S01-9642704-9639513',
creationTimestamp: '20211124T141931Z',
}
关于那个“状态:'完成'”,文档注意到以下内容:
如果事务处理成功,则在您调用 Complete Checkout Session 后,Checkout Session 将进入 Completed 状态。
有什么我错过了这个调用或者我的实现没有将 PaymentStatus 从“Open”移动到“Succeeded”行的错误吗?我还想指出,我是在沙盒模式下进行的。
提前感谢您提供的任何指导。