V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lux182
V2EX  ›  问与答

支付宝的脑残设计

  •  
  •   lux182 · 2023-03-16 14:28:08 +08:00 · 3756 次点击
    这是一个创建于 616 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个支付成功可能收到不同的回调。也可能分别收到两个回调
    根本无法区分 TRADE_SUCCESS TRADE_FINISHED



    https://opendocs.alipay.com/support/01raw9
    状态说明
    • WAIT_BUYER_PAY:交易创建,等待买家付款。
    • TRADE_CLOSED:在指定时间段内未支付时关闭的交易或在交易完成全额退款成功时关闭的交易。
    • TRADE_SUCCESS:商家签约的产品支持退款功能的前提下,买家付款成功。
    • TRADE_FINISHED:商家签约的产品不支持退款功能的前提下,买家付款成功;或者,商家签约的产品支持退款功能 的前提下,交易已经成功并且已经超过可退款期限。
    注意:
    商家必须根据支付宝不同类型的业务通知,正确的进行不同的业务处理,并且过滤重复的通知结果数据。在支付宝的业务通知中,只有交易通知状态为 TRADE_SUCCESS 或 TRADE_FINISHED 时,支付宝才会认定为买家付款成功。另外如果签约的产品支持退款,并且对应的产品默认支持能收到 TRADE_SUCCESS 或 TRADE_FINISHED 状态,该笔会先收到 TRADE_SUCCESS 交易状态,然后超过 交易有效退款时间 该笔交易会再次收到 TRADE_FINISHED 状态,实际该笔交易只支付了一次,切勿认为该笔交易支付两次。
    36 条回复    2024-07-04 10:24:37 +08:00
    lux182
        1
    lux182  
    OP
       2023-03-16 14:52:51 +08:00
    这些自作聪明的二货,退款通知也很搞笑。
    退款成功或者未支付,触发同样的回调。
    部分退款触发和支付成功同样的回调。
    LLaMA2
        2
    LLaMA2  
       2023-03-16 15:36:26 +08:00
    我就想问,这个设计有什么问题?
    sss15
        3
    sss15  
       2023-03-16 15:44:46 +08:00
    并不是啊,文档里写的很清楚,Success 是支付可退款状态,Finshed 是支付不可退款状态。 你业务可能用不到,但是对于要多方分账的业务场景,可能就需要等待 finshed 不可退款了,再进行分账
    pcbl
        4
    pcbl  
       2023-03-16 15:52:01 +08:00   ❤️ 1
    没啥问题啊
    cxe2v
        5
    cxe2v  
       2023-03-16 15:56:40 +08:00   ❤️ 1
    我是来看笑话的
    LaGeNanRen
        6
    LaGeNanRen  
       2023-03-16 16:27:52 +08:00
    啊对对对
    NeroKamin
        7
    NeroKamin  
       2023-03-16 16:29:50 +08:00
    这个设计没问题呀
    opengps
        8
    opengps  
       2023-03-16 16:49:01 +08:00   ❤️ 1
    多看看支付流程,这个设计完全没问题
    urnoob
        9
    urnoob  
       2023-03-16 17:02:56 +08:00
    人家的设计不说多好吧,起码没问题。而且说的如此明白详细
    lux182
        10
    lux182  
    OP
       2023-03-16 17:34:01 +08:00
    @ye4tar 接口的功能职责不明确。让对接的开发需要仔细看文档,稍不留神就出错。
    支付成功,收到的回调可能相隔一个月,期间的订单状态可能早就变化了。
    退款的接口也是,职责太不明确
    lux182
        11
    lux182  
    OP
       2023-03-16 17:34:52 +08:00
    @opengps 对比微信支付,就感觉出来了
    opengps
        12
    opengps  
       2023-03-16 17:36:57 +08:00
    @lux182 这么说你觉得微信支付很成功?查一下微信支付的负面评价,数量规模并不亚于支付宝的吐槽
    lux182
        13
    lux182  
    OP
       2023-03-16 17:37:42 +08:00
    @sss15 success 给人的直觉就是支付成功。finish 就是不可退。何必,不可退的时候直接来一个 finish 。
    lux182
        14
    lux182  
    OP
       2023-03-16 17:39:16 +08:00
    @opengps 至少在对接他们的支付回调时候是很顺利的,不需要纠结的看文档。
    kontttt
        15
    kontttt  
       2023-03-16 17:40:14 +08:00
    一看 op 就是只会做支付不会做财务、税务、清关、等等的系统了
    lux182
        16
    lux182  
    OP
       2023-03-16 17:41:29 +08:00
    @NeroKamin 可以看看退款通知, 取消支付和全额退款,状态竟然是一致的。只能通过其中的 refund_fee 来区分是个啥情况
    lux182
        17
    lux182  
    OP
       2023-03-16 17:44:00 +08:00
    @kontttt 不知道了有没有思考过这些细节问题。人身攻击就没必要了,你赢了就是
    documentzhangx66
        18
    documentzhangx66  
       2023-03-16 18:00:56 +08:00
    当我看到支付宝 [交易状态迁移图] 后,我支持楼主。

    第一次见到这种 Start 位于中间,而且能向两边展开的流程图。

    就算这种业务设计没问题,它也不科学。
    zoharSoul
        19
    zoharSoul  
       2023-03-16 18:03:23 +08:00
    感觉比微信的好多了
    比 apple 的更是好了无数倍
    lux182
        20
    lux182  
    OP
       2023-03-16 18:06:25 +08:00
    @documentzhangx66 感谢理解
    lux182
        21
    lux182  
    OP
       2023-03-16 18:07:04 +08:00
    @zoharSoul 微信在很多方面也是让人头大
    dqzcwxb
        22
    dqzcwxb  
       2023-03-16 18:36:03 +08:00
    微信支付不配碰瓷支付宝支付,以上为我个人片面认知
    sloknyyz
        23
    sloknyyz  
       2023-03-16 19:29:46 +08:00   ❤️ 3
    @lux182 稍不留神就出错还是别做开发了,尤其是这种跟钱有关的。
    lux182
        24
    lux182  
    OP
       2023-03-16 20:22:58 +08:00
    @sloknyyz 问题的根本是简单的问题复杂化,不自然, 道不同不相为谋。
    chenxiankong
        25
    chenxiankong  
       2023-03-16 22:29:32 +08:00
    支付宝这算很好的了,你去对接 GooglePlay 和 AppStore 的回调就知道头大了.
    Mess1ah
        26
    Mess1ah  
       2023-03-16 22:34:25 +08:00
    也许 op 标题改成"支付宝的这个设计是不是不合理" 会友好点。。btw 支付宝的这个设计确实算比较好的=-=
    o00o
        27
    o00o  
       2023-03-16 22:41:50 +08:00
    对,非常脑残,明明我一个邮箱号的支付宝账号已经绑定了手机号码,尝试使用电信手机号码免密登录竟然又创建了一个支付宝账号,然后别人给我打款还打款失败。。。
    lux182
        28
    lux182  
    OP
       2023-03-17 09:16:58 +08:00
    @chenxiankong 嗯 还没接触过,看来都有点难受
    lux182
        29
    lux182  
    OP
       2023-03-17 09:18:20 +08:00
    @o00o 一锅粥了
    lux182
        30
    lux182  
    OP
       2023-03-17 09:18:56 +08:00
    @Mess1ah 受教了,激动坏事
    LLaMA2
        31
    LLaMA2  
       2023-03-17 09:41:43 +08:00
    @lux182 不要被别人影响情绪,人间不值得的。

    关于回调时间久的问题,要考虑电商退货,有的退货能 30 天,那回调肯定是间隔 30 天

    无非就是 创建交易一定有 PAY ,
    接下来要么付款 SUCCESS ,要么取消订单 CLOSED ,要不付款且无退款可能就是 FINISHED
    SUCCESS 付款后截至到可退款期限仍未退款就 FINISHED ,发生退款又 CLOSED ,

    简单的说,PAY 创建
    CLOSED 交易没有完成,中间可能是 取消订单,付款后又申请退款,申请客服仲裁后退款等等
    FINISHED 交易完成,完成付款交易,交易双方皆大欢喜,以及其他情况等等等

    所以我认为没有大问题,而且阿里家接接口有问题提交工单回复很快的,腾讯家的就不好说了。
    lux182
        32
    lux182  
    OP
       2023-03-17 10:58:07 +08:00
    @ye4tar 感谢详细回答。我也觉得大问题没有,只是细节方面太不自然
    codeMore
        33
    codeMore  
       2023-03-17 17:07:57 +08:00
    个人感觉还好,可能是接了太多的三方支付 SDK 了,见得多了。收到支付成功回调 TRADE_SUCC ,此时就做发货处理,三个月后收到 TRADE_FINISH ,就代表不允许退款了,这个时候只需要处理一些限制退款处理了,不需要做发货情况处理。
    lux182
        34
    lux182  
    OP
       2023-03-17 17:24:28 +08:00
    @codeMore 如果不允许退款,支付成功收到 TRADE_FINISH /哈哈
    chanlk
        35
    chanlk  
       141 天前
    目前来说最好的是 stripe 的,其他感觉都让人挺难受的
    chanlk
        36
    chanlk  
       140 天前
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   990 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:13 · PVG 05:13 · LAX 13:13 · JFK 16:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.