请求组合支付(混合支付)的问题

2017-07-19 13:55:32 +08:00
 whuanghkl

账户余额扣款+支付宝支付 最大的问题就是: 先扣账户余额还是先去第三方支付?

分析: 一方支付失败(或未完成支付),该如何退款的问题? 延伸出两个问题: (1)如何判断支付失败? (2)如何退款? 有两种退款: (a)账户余额退款;(因为是我们自己的账户,所以较容易控制) (b)支付宝退款(不好控制);

我的思路: 先从账户余额扣款,如果扣款成功,则发起第三方支付; 1,如果账户余额扣款失败,则不发起第三方支付; 2,如果账户余额扣款成功,第三方支付失败(用户取消支付或余额不足),怎么办? 关键问题是:支付失败,不会收到通知.

我的方案:

1,发起第三方支付的时候,账户余额扣款,扣款的金额存储在订单信息中, 此时账户为冻结状态 2,第三方支付完成,则账户解除冻结同时修改订单状态为已支付; 3,第三方支付失败,账户依然是冻结,因为支付失败,不会收到通知; 4,如果超过 24 小时,支付宝仍然没有支付完成,则回滚账户余额,同时解除冻结 5,用户主动取消订单,同 4 处理

大家有什么好的建议?

3144 次点击
所在节点    Java
6 条回复
wangdu2012
2017-07-19 17:12:30 +08:00
这不是电商里面很常见的问么?
Annual
2017-07-19 18:44:23 +08:00
为什么不判断用户还差多少钱,支付成功后再扣除用户余额,而且现在的支付成功会有返回信息呀。
或者账单模式支付?
ryd994
2017-07-20 05:49:45 +08:00
发起支付时锁定账户余额,第三方支付不完成,这部分余额就不可用。第三方一直失败就等用户自己手动取消。
ryd994
2017-07-20 05:50:41 +08:00
不要冻结整个账户,万一用户中途充钱了呢?
domty
2017-07-20 10:18:55 +08:00
考虑弄两个余额,一个是总的,一个是可用的。
发起付款时锁定需要支付的一部分余额,第三方支付失败锁定的这部分余额解锁,超时未支付同理解锁。

余额扣款和第三方支付回调应该时处于同一个过程中的。

你这样直接冻结整个账号锁定粒度太大了,用户肯定会有意见的
kingwrcy
2017-10-12 17:05:43 +08:00
1.冻结账户余额应付的金额,不是冻结整个账户,也不是冻结所有可用金额,等待支付宝付款成功后,再实际扣除账户余额.视为支付成功.
2.超过支付宝支付有效期未支付的订单,解除账户余额冻结状态,视为支付失败.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/376392

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX