uniapp视频教程
uniapp视频教程
  • 发布:2018-05-25 00:19
  • 更新:2018-05-25 09:56
  • 阅读:1802

关于第三方支付安全问题

分类:HTML5+

这两天做app支付,采用了第三方支付beecloud突然想起了官方的demo是直接把生成order_string放在js里面了,个人觉得这样不妥.
支付一般来说是后端生成支付串(order_string),然后吐给前端去唤醒支付宝;官方的demo是直接把第三方beecloud的appid写在js的,这样有几个弊端,广大开发者可以留意一下:
1.h5+开发的app解压以后是可以看到js和html代码的,虽然有js混淆功能,但那不是真正意义的加密;

  1. 把生成支付串的方法放前端,别有用心的人可以通过解压你的app获取到你的appid,api请求地址,假如把这个放到后端去,那么只生成一个order_string,别人是不知道你用的原生支付宝接口还是第三方比如beecloud,(我再问一句,你敢把支付宝的加密方式放到前端去吗?同样的,为什么beecloud的加密方式就敢放到前端去)
  2. 订单金额等信息通过js来传入的,很容易被修改,会给运营带来麻烦;如果放到后端生成order_string,订单金额等信息是直接从数据库读取,别人是改不了的(虽然后台服务器可以在支付成功回调接口再对金额做一次判断,但这只是支付完成后的补救验证,不应该让错误信息去支付,并且最终也需要后台来验证,那为何不一开始就让后台验证好?)
  3. 官方作为demo为了方便演示,这是没问题的,广大开发者尽量使用后端生成order_string,比如我们用小程序的支付,也是通过后端生成的加密串再唤醒微信支付的.
  4. 后端我随时可以替换掉第三方支付,而不需要单独打包发布app让用户更新

作为一个严谨的程序员,有必要对每一个细节都关注,如果我说的不对的地方,欢迎大家和我一起交流.
我们公司对接了支付宝,微信,块钱,易宝,环迅等支付接口,所以对支付这块比较留意.

相互学习,共同进步!

2018-05-25 00:19 负责人:无 分享
已邀请:

最佳回复

DCloud_heavensoft

DCloud_heavensoft

“1.h5+开发的app解压以后是可以看到js和html代码的,虽然有js混淆功能,但那不是真正意义的加密;”
这个不是这样的,打包时勾选 原生混淆js,虽然我们的描述比较低调,但那个就是原生加密,别人解压包是拿不到js源码的

  • uniapp视频教程 (作者)

    哦哦,原来如此,那就好,我一直没有使用过,因为我自己用node混淆过,不会有冲突吧

    2018-05-25 08:53

  • DCloud_heavensoft

    回复 uniapp视频教程: 不影响

    2018-05-25 12:57

  • 回梦無痕

    回复 uniapp视频教程:额,最好是自己先对JS混淆一次再勾选js混淆功能。。。打包选择原生混淆js还是很破解拿到明文的JS代码。

    2018-05-26 20:48

skysowe

skysowe

非常好的问题,最近刚做完了微信和支付宝,对楼主的问题也有些疑问,,看来加js混淆还是很有必要的!

  • 6***@qq.com

    你好 我想问问我微信支付宝成功后 不触发回调 论坛很多人都遇到了 目前还没有看到一个解决方法,请问你是怎么解决这个问题的

    2020-07-13 13:58

该问题目前已经被锁定, 无法添加新回复