iOS开发代码段iOS支付相关iOS学习笔记

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

2016-03-10  本文已影响447人  蒋昉霖

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

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

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

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

我们来理一下正确的逻辑

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读