适用场景
当你已经集成 Waffo 收银台,并希望在首次支付后继续发起以下扣款时,使用 Waffo 收银台绑卡:- 按固定计划发起的 scheduled MIT
- 用户离线时发起的 unscheduled MIT
- 商户自行管理周期计划,并通过
ONE_TIME_PAYMENT完成后续扣款
完整时序
与商户侧绑卡的区别
前置条件
- 你已完成收银台集成。
- 订单使用
ONE_TIME_PAYMENT。 - 商户已开通支持 MIT 的银行卡支付方式。设置
setupFutureUsage: true后,Waffo 只提供支持 MIT 的支付方式。 - 商户已通过 Waffo 的 MIT 白名单准入。未完成准入时不可发起 MIT。
userInfo.userId对同一用户保持稳定。后续使用 Token 时仍需传入同一个用户 ID。
集成步骤
1
创建支付并声明后续使用
调用创建支付,在 不要同时传入
paymentInfo 中设置 setupFutureUsage: true。paymentInfo.setupFutureUsage 和 paymentInfo.userPaymentAccessToken。前者表示创建新 Token,后者表示使用已有 Token。2
将用户带到收银台
按照普通收银台支付流程解析响应中的
orderAction,并将用户重定向到 Waffo 收银台。用户输入新卡并完成支付。如果用户选择已有的已存卡,Waffo 会复用该卡,不会重复绑定同一张卡。3
从支付通知获取 Token
Waffo 收银台绑卡不会发送 请在支付成功后保存 不要等待
TOKENIZATION_NOTIFICATION。支付成功后,Waffo 向创建订单时的 notifyUrl 发送 PAYMENT_NOTIFICATION。从 result.paymentInfo.userPaymentAccessToken 获取本次支付生成的 Token。支付通知关键字段节选:result.paymentInfo.userPaymentAccessToken。如果支付通知未送达,可调用 POST /api/v1/order/inquiry,传入 paymentRequestId 或 acquiringOrderId,并从响应中的相同字段获取 Token。例如:TOKENIZATION_NOTIFICATION。4
使用 Token 发起 MIT
后续扣款时,将支付通知中的 Token 作为
paymentInfo.userPaymentAccessToken,并设置 merchantInitiatedMode。merchantInitiatedMode 支持:scheduled:按预先约定的固定计划扣款unscheduled:没有固定周期的商户发起扣款
常见问题
没有可用支付方式
设置setupFutureUsage: true 后,Waffo 会过滤不支持 MIT 的支付方式。确认商户已开通支持 MIT 的银行卡合约;仍无可用方式时,请联系 Waffo 技术支持。
支付成功但暂未收到 Token
先确认是否已收到PAYMENT_NOTIFICATION,并读取 result.paymentInfo.userPaymentAccessToken。如果支付通知未送达,调用订单查询获取同一字段。Waffo 收银台绑卡不会发送 TOKENIZATION_NOTIFICATION。