关于支付宝支付问题的讨论

作者: 蒋昉霖 | 来源:发表于2016-03-10 18:00 被阅读447次

    如果再有后段给你说,让你自己处理订单,你只需要返回给后段支付状态就好了这样的话,你就抽他。。。

    来到新公司查看老代码逻辑,发现一个很严重的问题:
    我们的整个支付加密流程都是在前段做的,前段拿到订单信息,拿到钱数,自己生成描述,随便写一个回调地址,自己前端放私钥,前端加密,然后发给支付宝后段,支付成功之后返回给前段状态,前端把这个状态再返回给后端,整个全部都由前端来完成。

    我们来分析一下这样有什么问题

    1. 第一条,前端拿到了支付成功,要往后段发送支付状态,这个时候断网了,发送失败,这个时候实际上客户是支付成功了的,但是后端拿不到,所以这个订单状态还会变成未支付。
    2. 第二条,因为整个加密流程是前端做的,我完全可以通过抓包的手段去更改这个信息,比如该支付100元改成支付1元,这样发给支付宝,也会收到支付成功的信息
    3. 第三条,更吓人的是,我完全可以直接返回给后端我已经支付成功的信息,不通过支付宝也能达到支付的效果,这不扯淡么

    我们来理一下正确的逻辑

    1. 我们把需要的商品金额发给后段,后端比对之后加密返回给我所有的订单信息,包括回调什么的,后端统一管理
    2. 然后我们把收到的加密后的信息,发给支付宝,该怎么支付怎么支付,
    3. 支付完成之后,支付宝会给移动端和后端分别发送支付信息
    4. 然后前端把收到的信息发给后端进行比对
    5. 后端比对成功,更改自己订单状态

    4,5两步都是以后端收到的信息为准

    这样才能达到数据安全,关于钱的问题,放在前端做,这不是搞笑么,个人意见

    相关文章

      网友评论

      • 蒋昉霖:这个你们自己协商吧,理论上我觉得应该显示成功,后端报个警告,人工查,用户体验为第一,当然具体情况具体分析
      • dong_liang:支付完成后,前端收到支付完成的信息,但是后端没有收到,该怎么处理呢
        dong_liang:@蒋昉霖 这种情况应该显示支付成功还是失败
        蒋昉霖:@dong_liang 后端信息是支付宝给的,一版不会错,有错了是支付宝负责。你后端可以建表比对,报错人工核对

      本文标题:关于支付宝支付问题的讨论

      本文链接:https://www.haomeiwen.com/subject/yymtlttx.html