本文主要是简略分析并记录一下京东支付的混合支付是怎么实现的
京东订单和京东支付
京东订单和京东支付是分离的,也就是说先提交订单,再跳转去支付。这样做的好处:
- 订单和支付解耦,各司其责,便于模块化、服务化、跨团队协作;
- 支付方式可以实时选择,继续二次支付
支付页面分析
跳转至第三方支付页面
本地支付的补充
- 简单地说,京东支付从产品设计和体验上避免了 本地支付 和 第三方支付 的混合支付;
- 我们要做 本地支付 和 第三方支付 的混合支付的话,一般先 扣除 本地余额(或 冻结 本地余额,其本质是一样的),然后提交到第三方支付,最终根据第三方支付的结果(1、支付成功;2、主动取消订单;3、订单2小时后自动超时) 来触发整个交易完成 还是 回滚之前的余额扣除(或 解冻)。
- 每日优鲜APP,没有预扣余额,每次下单都可以使用未真正扣除的余额。1、他们只有APP端,没有我们(或者京东)多终端的场景,所以并发冲突的概率会不一样;2、产品尽量参考一些业界业务和技术都更值得信服的产品或应用做参考吧。 其实每日优鲜的实现方式也没啥问题,只是:1、使用这种处理方式很少;2、可能引起旧订单无法继续支付的问题;(余额争抢冲突,导致只有先支付的订单有效,剩余订单无法继续支付)3、用户体验不好(并发冲突时的报错提示)。