whuanghkl
V2EX  ›  Java

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

  •  
  •   whuanghkl · Jul 19, 2017 · 3918 views
    This topic created in 3228 days ago, the information mentioned may be changed or developed.

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

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

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

    我的方案:

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

    大家有什么好的建议?

    6 replies    2017-10-12 17:05:43 +08:00
    wangdu2012
        1
    wangdu2012  
       Jul 19, 2017 via iPhone
    这不是电商里面很常见的问么?
    Annual
        2
    Annual  
       Jul 19, 2017 via Android
    为什么不判断用户还差多少钱,支付成功后再扣除用户余额,而且现在的支付成功会有返回信息呀。
    或者账单模式支付?
    ryd994
        3
    ryd994  
       Jul 20, 2017
    发起支付时锁定账户余额,第三方支付不完成,这部分余额就不可用。第三方一直失败就等用户自己手动取消。
    ryd994
        4
    ryd994  
       Jul 20, 2017
    不要冻结整个账户,万一用户中途充钱了呢?
    domty
        5
    domty  
       Jul 20, 2017
    考虑弄两个余额,一个是总的,一个是可用的。
    发起付款时锁定需要支付的一部分余额,第三方支付失败锁定的这部分余额解锁,超时未支付同理解锁。

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

    你这样直接冻结整个账号锁定粒度太大了,用户肯定会有意见的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3340 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 11:14 · PVG 19:14 · LAX 04:14 · JFK 07:14
    ♥ Do have faith in what you're doing.