码迷,mamicode.com
首页 > 微信 > 详细

微信支付 - 中的那些坑

时间:2016-05-04 13:27:00      阅读:503      评论:0      收藏:0      [点我收藏+]

标签:

前段时间准备做支付,申请开通了微信支付,然后简单的弄了几下就看到支付页面了,

但是现在,当需要投入到生产环境中时,问题就来了!

 

坑一:H5调起支付API报错, 缺少参数appId

  缺少 appId $key0$ 这种的,这个奇葩的问题调试了整整一个下午,因为很确定参数是对的,可就是报错,

  最后发现原因是:js使用gulp压缩之后变掉了,比如那个参数列表 本来是:{"appId":xxx .... 的,压缩后变成 {appId:xxx .....   莫名其妙的就把双引号去掉了!! 好的,既然双引号去掉了,那就给他加上呗,结果加上后还是报错,具体报错原因到底是外部js还是gulp还是什么,已经不想纠结了,反正就是有问题!

  最后,还是采用了官方文档的形式,js直接写在页面里,免得出啥子幺蛾子

 

坑二:商户单号重复!

  注意: pc - 扫码支付     wechat - 公共号支付

  这个错误发生的场景是这样的,用手机下单,然后点击支付(调用统一下单),然后取消支付,然后在pc上点击支付,这时候统一下单就报错了;同理,反过来先在pc上调统一下单,再手机上调也是不行的

  因为是使用的订单号(原始单号,订单唯一凭证)作为 out_trade_no 的,所以出现了这个错误,百度了一下后发现很少人提这个问题,答案也少

  最后呢,去京东充话费做实验,发现它的商户单号是一串很长很长的数字... ,不像是订单号来的!

  结论:不该直接用订单号做商户订单号!

  解决方案1:建立一个单号系统,每次发起支付都生成新的商户单号,与订单号做关联, (好麻烦,感觉不可取)

  解决方案2:为商户单号加后缀,区分每种支付方法(这种方式简单)

  其它解决方案:还不知道

  不管方案一还是方案二,都需要做一些处理来避免重复支付,这个就不细说了,其实期望更好的解决方案,没办法,没人教,只能自己摸索

  

微信支付 - 中的那些坑

标签:

原文地址:http://www.cnblogs.com/xiaoyaxiaopingguo/p/5457985.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!