Amazon Pay调用completeCheckoutSession成功但交易未确认问题排查
问题根因及解决方案
核心遗漏步骤
CheckoutSession状态转为Completed仅代表买家已完成授权、支付信息验证通过,Amazon Pay不会自动触发扣款操作,你需要额外调用CreateCharge接口完成请款,才会更新支付状态为Succeeded。
你当前拿到返回结果里的chargePermissionId就是调用CreateCharge的必要参数。
具体操作步骤
- 第一步:拿到
completeCheckoutSession返回的chargePermissionId,调用CreateCharge接口,示例代码参考:
const chargePayload = { chargePermissionId: apiResponse.data.chargePermissionId, chargeAmount: { amount: `${purchasePrice}`, currencyCode: 'USD' }, captureNow: true // 沙箱环境下直接填true即可,代表立即请款无需预授权后单独捕获 } const chargeResponse = await testPayClient.createCharge(chargePayload)
- 第二步:验证
CreateCharge返回的状态,如果返回state: 'Completed',代表请款成功,此时卖家中心的Payment Status就会更新为Succeeded,同时触发订单确认邮件。
沙箱环境额外验证点
- 确认你使用的沙箱测试买家账号没有异常,测试卡状态正常
- 请款金额要和之前
updateCheckoutSession中设置的金额完全一致,不能有出入 - 如果开启了异步通知,要确认IPN端点能正常接收Amazon Pay的状态推送通知,避免状态同步延迟
内容的提问来源于stack exchange,提问作者Digglit
相关产品推荐
相关产品推荐

