支付重试机制
Antom 为您提供支付重试机制。通过 createPaymentSession(单笔支付)接口创建的支付会话,允许买家在支付会话有效期内多次尝试支付并自由切换支付方式,无需商户服务端重新调用接口。以下集成路径支持该重试机制:
支付重试场景
重试类型 | 触发场景 | 处理方式 | 是否涉及服务端 |
页面内重试 | 买家输入错误、密码错误、余额不足等场景。 | 在 Payment Element 或 Checkout Page 页面内更正信息(如卡号)后,直接点击支付按钮重新提交。 | ❌ |
切换支付方式 | 当前支付方式失败,买家希望尝试其他方式。 | 在 Payment Element 或 Checkout Page 页面的支付方式列表中,选择其他方式后直接点击支付按钮提交。 | ❌ |
3DS 验证失败 | 3D Secure 验证失败。 | 需商户服务端重新调用 createPaymentSession(单笔支付)接口以生成新会话。 | ✔️ |
支付会话过期后重试 | 支付会话超过有效期(默认 1 小时)。 | 需商户服务端重新调用 createPaymentSession(单笔支付)接口以生成新会话。 | ✔️ |
订单取消后重试 | 商户已主动取消订单,但买家希望重新支付。 | 需商户服务端重新调用 createPaymentSession(单笔支付)接口以生成新会话。 | ✔️ |
常见问题
买家可以在 Payment Element 或 Checkout Page 页面内切换多少次支付方式?
没有次数限制。支付会话有效期默认为 1 小时,您也可通过 paymentSessionExpiryTime 参数自定义过期时间,买家在支付会话有效期内可以无限次切换支付方式并尝试支付。
如果需要修改订单金额,是否可以重用同一个支付会话?
不可以。修改订单金额属于订单信息变更,必须按以下步骤操作:
- 如果支付已发起,您需要按照取消交易的步骤调用 cancel 接口取消当前支付会话。
- 重新调用 createPaymentSession(单笔支付)接口创建新会话。
- 使用新的 paymentRequestId 和更新后的金额进行后续流程。
在 Checkout Page 场景下,买家关闭浏览器后,支付会话还会保留吗?
会的。支付会话有效期默认为 1 小时,您也可通过 paymentSessionExpiryTime 参数自定义过期时间,支付会话自创建起在有效期内持续存在。即使买家关闭了浏览器,只要在有效期内再次访问原 Checkout Page 链接,仍可继续支付流程。
针对同一订单,如果出现多笔成功支付,系统会如何处理?
Antom 系统将以最后一笔成功支付作为最终状态,并对此前所有成功支付自动发起退款。 退款规则如下:
- 最终状态:系统以最后一笔成功支付为最终有效交易。
- 自动处理:之前的所有成功支付会自动发起全额退款。
- 退款路径:退款将原路返回至买家当初使用的支付账户。
注意:
- 当收到多笔支付成功的通知时,您无需手动调用 refund 接口,系统会自动处理。
- 您应以最后一笔支付通知为准来更新订单状态。
- 若买家咨询为何发生多次扣款,可解释为:“系统已自动发起退款,款项将在 5-14 个工作日内原路退回,请您耐心等待。”
- 如果退款超过 14 个工作日仍未到账,请联系 Antom 技术支持,并提供 notifyPayment 接口发送的 paymentId 以查询退款状态。
在支付会话有效期内,我调用 inquiryPayment 接口会返回什么结果?
inquiryPayment 接口可能返回以下三种结果:
- 支付成功:返回支付成功的结果。
- 支付失败但支付会话仍有效:返回
PAYMENT_IN_PROGRESS,表示支付仍在进行中。 - 未支付成功且支付会话已过期:返回
ORDER_IS_CLOSED,表示交易已关闭。