用户在租车、充电站、酒店预订等场景消费时,需要在启动服务时进行预授权,服务完成结算时将从预授权资金中扣除消费金额,剩余金额返还给用户。
支付宝预授权支持用户对余额、余额宝、信用卡、借记卡、花呗、芝麻信用等渠道进行预授权。预授权时,余额、余额宝会被冻结;信用卡、借记卡会扣款到支付宝内部账户,锁定资金;花呗会锁定信用额度,不会产生账期;芝麻信用会以用户信用作为担保和授权。
以上就是支付宝预授权的官方介绍,但是在操作过程中可能会出现一些问题,这里我就把我遇到的问题整理一下,如果有相关业务开发可以参考一下。
支付宝预授权状态汇总
测试情况:
3页有4个case,加上,一共5个case,第二页和第三页算同一个case。
健康)状况:
a:第 1 页失败 -> 没有后续行动
mapi可以接收支付宝APP的同步结果然后传递给底层,状态是用户取消,但是下次对同一订单的操作会报“系统繁忙”的错误。
b: 第 1 页成功 -> 第 2 页成功 -> 成功
支付宝回调成功,mapi回调也成功,正常
c: 第 1 页成功 -> 第 2 页失败 -> 失败
页面 1 成功,支付宝和 MAPI 都没有通知我们。页面 2 失败,MAPI 通知我们用户已取消。
若您再次为同一订单申请芝麻免押金,将会提示“系统繁忙”。
d: 第 1 页超时 -> 失败
如果发生超时,支付宝和MPI都不会通知我们,只有当用户从支付宝页面返回时,MPI才会回调,支付宝不会回调。
如果您再次尝试使用芝麻免押金,您仍然会收到“系统繁忙”的消息
我们有一个每小时执行一次的回调,用于同步处于等待状态的数据,支付宝预授权已经关闭一个小时了,业务会在结果同步完成后回调,但是一个小时对业务来说毫无意义。
e: 第 2 页超时 -> 失败
再次预授权,“系统忙”
个人猜测:
业务订单在支付宝只能存储一种状态,理论上“等待订单应该转为成功或者失败”,但目前所有等待订单都会重新获取预授权冻结参数,导致重新获取参数时会报“系统繁忙”,等待订单只能转为失败。
支付宝预授权问题
文档地址