微信小程序支付开发爬坑攻略(支付签名验证失败)
来源:互联网 发布:surface windows rt 编辑:程序博客网 时间:2024/05/17 06:18
第1个坑:微信支付的api密钥(签名需要的key参数)
商户中心(https://pay.weixin.qq.com/index.php/extend/employee) – API安全 – API密钥
API密钥是不能查询,只能更新。我直接从公众号的微信支付代码中复制过来的(WxPay.Config.php中的KEY值)。
后来支付开发遇到坑,曾怀疑是API密钥(key参数)不对,就用原密码直接修改了一次,不影响原来的公众号支付系统。
第2个坑:小程序开发文档内没有提供直接可用的demo源码
我是从网上找了一份别人开发用的,小程序源码还是没,自己写了一份
用微信支付的标准demo一样可用的。https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=11_1
只要是里面要有统一下单的源码就可以。一开始没在微信公众号原有的代码里直接添加呢,因为小程序的appid是不一样的,实际上微信支付同一套源码同时开发微信公众号和小程序的支付都没问题。
第3个坑:开发流程(最大的坑)–小程序支付需要使用再次签名
小程序支付接口文档;
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=3
这么多前期开发者都抱怨微信开发文档不够明了,才容易引起各种坑。的确如此,不仔细看,就得一步一步踩过去。
统一下单没出现什么坑,因为返回的错误比较明白,容易解决。
统一下单后返回prepay_id后要调用小程序支付函数,有最重要的一步,是需要再次签名的,用统一下单返回的sign(签名)是没有用的。在开发文档里,业务流程图里是有说明的,而下方列出再次签名()的api
第4个坑:签名的参数名是区分大小写的,也就是说必须每个参数名都尽量复制。我就是把timeStamp写成了timestamp,即使从log复制出来没用区分大小写查询都没找出这个坑。
第3和第4个坑都会报微信支付支付验证签名失败的错,而且原因也不解释,所以特别让人找不到解决的捷径。
最理想的是利用下方
签名加密工具地址:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1
把再次签名()代码里生成的加密前字符串(比如php用error_log显示出来后,复制出来)和工具里提供的字符串进行对比,而且一定要作用区分大小写来进行对比。因为每一个订单都可以保持2个小时,所以可以把两次签名()里的参数全写死(跟工具里填一样的),通过验证签名成功后就好找原因了。
- 微信小程序支付开发爬坑攻略(支付签名验证失败)
- 微信支付 支付验证签名失败
- 支付宝回调验证签名失败
- 微信jsapi支付验证签名失败
- ##iOS中的微信支付 支付验证签名失败
- 关于微信APP支付,提示支付验证签名失败
- 微信支付报错“支付签名验证失败”
- 支付宝电脑网站支付,回调时签名验证失败
- 微信支付提示支付验证签名失败
- 微信公众号支付支付验证签名失败及公众号支付总结
- 支付宝回调验证签名
- 小程序支付签名失败,视频详解怎么解决小程序支付签名paysign错误
- 支付宝即时到账接口调用签名验证失败
- PHP 支付宝 异步 MD5 签名验证失败
- 微信公账号支付:签名验证失败的解决办法
- 微信支付SDK “支付验证签名失败”,怎么也找不到原因?
- java官方工具包微信H5支付报“支付验证签名失败”
- 微信支付-支付验证签名失败,跳转无响应等
- HOJ 5199 Happy Matt Friends (暴力dp)
- Spark的Ml pipeline
- 由环形队列消锁引发的思考
- 实战phoenix
- 1.jQuery入门
- 微信小程序支付开发爬坑攻略(支付签名验证失败)
- 滤镜-Color Lookup Table(ColorLUT)技术
- mingw 环境变量设置
- Matlab--intersect
- 表单js提交报错 submit is not a function
- Boss拦截模版
- 小程序服装行业解决方案,微信小程序在服装业中的应用
- BZOJ1293(SCOI2009)[生日礼物]--维护区间
- JAVA类加载器