账户余额扣款+支付宝支付 最大的问题就是: 先扣账户余额还是先去第三方支付?
分析: 一方支付失败(或未完成支付),该如何退款的问题? 延伸出两个问题: (1)如何判断支付失败? (2)如何退款? 有两种退款: (a)账户余额退款;(因为是我们自己的账户,所以较容易控制) (b)支付宝退款(不好控制);
我的思路: 先从账户余额扣款,如果扣款成功,则发起第三方支付; 1,如果账户余额扣款失败,则不发起第三方支付; 2,如果账户余额扣款成功,第三方支付失败(用户取消支付或余额不足),怎么办? 关键问题是:支付失败,不会收到通知.
我的方案:
1,发起第三方支付的时候,账户余额扣款,扣款的金额存储在订单信息中, 此时账户为冻结状态 2,第三方支付完成,则账户解除冻结同时修改订单状态为已支付; 3,第三方支付失败,账户依然是冻结,因为支付失败,不会收到通知; 4,如果超过 24 小时,支付宝仍然没有支付完成,则回滚账户余额,同时解除冻结 5,用户主动取消订单,同 4 处理
大家有什么好的建议?
1
wangdu2012 2017-07-19 17:12:30 +08:00 via iPhone
这不是电商里面很常见的问么?
|
2
Annual 2017-07-19 18:44:23 +08:00 via Android
为什么不判断用户还差多少钱,支付成功后再扣除用户余额,而且现在的支付成功会有返回信息呀。
或者账单模式支付? |
3
ryd994 2017-07-20 05:49:45 +08:00
发起支付时锁定账户余额,第三方支付不完成,这部分余额就不可用。第三方一直失败就等用户自己手动取消。
|
4
ryd994 2017-07-20 05:50:41 +08:00
不要冻结整个账户,万一用户中途充钱了呢?
|
5
domty 2017-07-20 10:18:55 +08:00
考虑弄两个余额,一个是总的,一个是可用的。
发起付款时锁定需要支付的一部分余额,第三方支付失败锁定的这部分余额解锁,超时未支付同理解锁。 余额扣款和第三方支付回调应该时处于同一个过程中的。 你这样直接冻结整个账号锁定粒度太大了,用户肯定会有意见的 |