微信支付 - 中的那些坑

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

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

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

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

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

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

坑二:商户单号重复!

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

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

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

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

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

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

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

  其它解决方案:还不知道

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

  

时间: 2024-11-09 08:19:18

微信支付 - 中的那些坑的相关文章

微信支付趟过的坑

微信支付趟过的坑 标签: 微信支付 2015-01-21 15:49 25791人阅读 评论(30) 收藏 举报  分类: 微信公众号开发 版权声明:本文为博主原创文章,未经博主允许不得转载. 这段时间在做微信支付开发,在公司的公众号审批下来后,我这边的测试用例也已经开发完毕,于是拿着具体的数据来调试了,大段大段的代码就不贴了,demo里有,这里就说说调试过程中遇到的坑. 第一坑:redirect_url参数错误.因为我选择的的“JS API”支付,这种支付需要网页授权,先获取code,再拿co

微信支付中证书的存放目录及其路径写法

微信支付中证书的存放目录及路径写法 在调试微信支付过程中,下载证书并存放在服务器是非常重要的一步,那么如何存放证书,并在微信支付配置类文件里如何书写路径也变了尤为重要了,下面将介绍这两个问题如何解决,刚开始接触微信支付的小伙伴最好是注意一下,因为我刚开始的时候也是这样踩过来的(如果你是高手,请忽略本篇博文) 一.证书存放目录 为了安全起见,一般是不能放在客户端随意能访问到的目录,比如,以tp5为例,切勿放在public文件下,可以在项目根目录下建一个cert目录,把证书放在cert下就可以了 如

iOS通俗易懂的微信支付接入和爬坑指南,十分钟轻松搞完

现在基本所有的App都会接入支付宝支付以及微信支付,也有很多第三方提供给你 SDK帮你接入,但是这种涉及到支付的东西还是自己服务器搞来的好一些,其实搞懂了 逻辑非常的简单,下面直接给大家说说下基本流程和接入需要注意的东西. 前期准备(这个东西一般来讲我们不需要来操心,但是还是稍微介绍下) 1.到微信开放平台注册账号点击打开链接 2.进入管理中心------移动应用------创建移动应用----根据页面完善应用资料 3.审核过后,通过应用详情页面,查看应用详情,查看AppID和AppSecret

支付宝和微信支付的各种填坑

填坑 支付宝填坑是每个接入支付宝必经之路,下面是我接入支付宝遇到的问题汇总,希望大家在接入的路上少一点弯路 问题1. Util/base64.h:63:21: Cannot find interface declaration for ‘NSObject’, superclass of ‘Base64’ 解决办法: 这是base64.h中没有加入#import 系统库文件导致,这个错误报错方法直接想喷它一脸.报错方式太恶心. 1 2 解决办法: 这是base64.h中没有加入#import  系

10分钟搞定支付宝和微信支付 的 各种填坑

填坑   支付宝填坑是每个接入支付宝必经之路,下面是我接入支付宝遇到的问题汇总,希望大家在接入的路上少一点弯路 问题1. Util/base64.h:63:21: Cannot find interface declaration for ‘NSObject’, superclass of ‘Base64’ 解决办法: 这是base64.h中没有加入#import  系统库文件导致,这个错误报错方法直接想喷它一脸.报错方式太恶心. 问题2.截图告知你什么问题 解决办法: 这个问题可以同上的,心情

10分钟搞定支付宝和微信支付的各种填坑

支付宝填坑是每个接入支付宝必经之路,下面是我接入支付宝遇到的问题汇总,希望大家在接入的路上少一点弯路. 问题1. Util/base64.h:63:21: Cannot find interface declaration for ‘NSObject’, superclass of ‘Base64’ 解决办法: 这是base64.h中没有加入#import 系统库文件导致,这个错误报错方法直接想喷它一脸.报错方式太恶心. 问题2.截图告知你什么问题 解决办法: 这个问题可以同上的,心情好,截图再

2017年第一篇博客--关于集成友盟和微信支付等遇到的坑

前几天刚完工的一个定制单,需要用到分享,第三方登录,微信支付功能.因为一直都是用友盟去集成分享和第三方登录,所以项目初期就使用cocopads导入了友盟库. 上个月开始做支付功能,支付宝支付没有什么问题,按照官方文档顺利实现.到微信支付时候,下载了微信包,导入项目,顺利完成支付功能.然后开始做第三方登录,QQ登录和微信登录我打算直接使用友盟,QQ登录顺利完成,但微信登录就没那么顺利了.第一个坑,微信登录不走友盟回调,无限重新拉起授权.起初我以为是bundleid和appkey不对的问题,仔细校验

微信授权以及微信支付所遇到的坑

一.被公司临时委派写下微信授权和微信支付,也是醉了,各种坑.折磨我好几天..现在弄完了,记下遇到的坑 二.准备工具,登录微信公众号平台,点击接口权限 三.选择网页授权页面 四.点击修改 五.最下面的就是服务器域名,必须经过备案,设置不了,没有备案还有种方法,下面再说 六.需要传一个验证文件到web服务器根目录,别人弄的,我也不是很明白怎么在Linux上弄这个验证文件,我一直是用本地测试的,ngrok反向代理生成外网 七.点击下载的就是验证文件,不同公众号验证文件不一样 八.如果没有备案域名的话,

think php框架接入微信支付中需要注意的问题(php 小白适用)

接触php也有一段时间了,感觉有越来越多的地方需要学习,最近接入了微信扫码支付(pc端),记录一下,让php刚入门的小白们少走弯路. 准备阶段,到"微信公众平台"注册微信公众号,具体注册就不说了,有了微信公众号后,就能得到AppID,APPSECRET(注意保存,微信现在不会存贮了,要自己记下来),再有就是申请微信支付,要到 "微信商户平台",要提交各种材料,包括营业执照注册号,影印件 等各种材料,审核通过后,大体准备就已经完成了. 首先:要有appID,APPSE