注册 | 登陆
您的位置:阿里西西 > 编程技术 > 手机APP编程 > 详细内容

公众号微信支付遭遇:微信支付JSAPI报错:支付验证签名

  稿源:互联网   2019-03-08   点击:   撤稿纠错
在开发微信支付的JSAPI功能时,进行各种调试工作到最后一步时,又遇到了坑。官方文档的坑不是一般的多! 本文详解一下个人在解决这个问题的排坑方法。
本站收录这篇文章公众号微信支付遭遇:微信支付JSAPI报错:支付验证签名失败 错误排坑文章,详细解说文章中相关公众号 微信支付 JSAPI 支付验证 签名 技术与知识,欢迎能给大家一些在这方面的支持和帮助!下面是详细内容:

根据这个微信支付JSAPI报错:支付验证签名失败 的原因,我们可以很肯定的问题就出在了JSAPI签名验证方面。

首先梳理一下JSAPI的流程。

先从第一步统一下单接口开始。本人已经把Native招码接口的支付完成了,但转到JSAPI来的时候,就问题百出。

当统一下单的交易类型 trade_type 设置为JSAPI的时候,比Native扫码支付就多了个参数,那就是 prepay_id  !理清楚这个很关键。

也就是说要实现JSAPI支付,那么我们就要进行两次签名的过程。为什么要谈到签名这事,因为我们的问题提示就是支付签名失败!

好,下面接着说两次签名的过程,第一次签名是先提交统一下单的请求,在这里很多人都发现 如果在统一下单的时候,不填写sign_type为MD5,则会默认使用HMAC-SHA256加密,这个是我们要排的第一个坑。

虽然进行JSAPI统一下单时,你不不填写sign_type=MD5时,还是能成功取得prepay_id的返回值,但我建议第一份统一下单的签名还是把这个参数带上(至少我后面排坑时也是带上的,并且通过了!)

这时,我们把带sign_type=MD5参数的统一下单取到了prepay_id,接着进行第二次签名,也就是H5页面支付所需要的签名。

这一步,我通过了官方的在线工具:https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1

进行了初步的调试验证!

通过工具,我们可以少走很多弯路,清楚的看到参数的排列签名加密顺序。

这样我们就可以很轻松的写出加密签名的代码:

UCase(MD5("appId="&AppID&"&nonceStr="&nonstr&"&package=prepay_id="&prepay_id&"&signType=MD5&timeStamp="×tr&"&key="&MchKey&""))

上面的代码加密出来就是H5页面所需要的正确的第二次签名了!

调试时,可以把nonceStr随机数和timeStamp写成非变量明文,进行和工具测试,检验SIGN正确后再重新写为变量值。

很多人在这一步也会遇到: 调用支付JSAPI缺少参数:total_fee  的错误,这个错误并非是total_fee金额的问题,而是参数的一些错误,比如大小写问题,说到大小写问题,这里一定要清楚,第一份统一下单签名的参数名大小写和第二份H5签名的参数名大小写是不一样的,appid和appId的区别,你懂的,一定要严格按开发文档的参数名进行书写,避免进坑!

如果您遇到同样的问题,有幸能看到这篇本站站长亲历写下的文章,我想按步骤去排查,你应该很快就能解决这个问题了!!

老虎机发短信注册送59内容到此结束,欢迎您再次访问http://www.alixixi.com,我们致力于提供丰富的web开发老虎机发短信注册送59及资源。

注册送彩金不限id关于 公众号 微信支付 JSAPI 支付验证 签名 的文章
相关阅读

相关排行总榜

ASP老虎机发短信注册送59

PHP老虎机发短信注册送59

.NET老虎机发短信注册送59

ASP采集功能WinHttp.WinHttpRequest.5.1的
AspJpeg图片处理组件属性的详细中文使用说
通过ASP生成html纯静态页面的简单示例
ASP开发中一个把utf-8转UTF-8编码的函数
推荐几个ASP开发中常用的fso操作文件图片
ASP读取操作生成excel文件的实例代码老虎机发短信注册送59
使用ASP进行网站开发防范ASP木马的10条建
通过ASP调用MSSQL数据库视图和存储过程的
通过aspupload上传组件实现的ASP实现远程
ASP调用MSSQL存储过程进行分页的两种方式
PHP解决HTTP和HTTPS跨域共享session的方法
php程序判断来访客户端是手机端还是电脑P
用PHP来获取当前页面所有url参数信息的教
配置好环境后,进行php代码调试的方法总结
教您使用php代码实现上传图片或文件到服务
PHP开发中推荐十款最出色的安全开发工具库
PHP基础学习之数组介绍
浅谈JSP与ASP.PHP的各种平台应用比较
php制作一个万年历注册送300元打到2000的实例代码老虎机发短信注册送59
制作简单安全的php验证码类代码实例
ASP.NET环境配置中几种身份验证方式及权限
记录一次对ASP.NET网站漏洞的入侵和防范教
Asp.net在mvc环境下实现上传头像加剪裁功
对 ASP.NET 异步编程的一点理解与分析
ASP.NET读取与操作Session的代码案例老虎机发短信注册送59
ASP.NET将大文件数据分成较小的部分进行分
讲解.Net组件程序设计之异步调用
AS脚本与Asp.net通过UrlRequest进行前端交
一组常用的.NET命名空间中文解释
asp.net解决url地址栏传递中文参数出现乱
博聚网