2017-11-19 15:19:10 shai1124 阅读数 5340
  • 微信公众平台开发4-消息管理-微信开发php

    微信公众平台开发之消息管理是子恒老师《微信公众平台开发》视频教程的第4部。详细讲解了用php开发微信,对微信公众平台中的消息管理开发。内容包含微信关键字回复,多图文消息回复开发,接收图片消息,视频,小视频消息等等。欢迎反馈,微信/QQ:68183131

    6307 人正在学习 去看看 秦子恒
首先,我是保证了我取得的所以签名的参数经我签名计算后,和微信提供的

微信 JS 接口签名校验工具 https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign 

计算的结果一致。经排除,是url的参数中带有服务器端口,可微信那边执行签名计算的url不带端口号,因此出现了错误。
写上,以备后查,和遇到相同问题的同学参考。
2019-12-14 10:01:48 lifei15731208550 阅读数 4
  • 微信公众平台开发4-消息管理-微信开发php

    微信公众平台开发之消息管理是子恒老师《微信公众平台开发》视频教程的第4部。详细讲解了用php开发微信,对微信公众平台中的消息管理开发。内容包含微信关键字回复,多图文消息回复开发,接收图片消息,视频,小视频消息等等。欢迎反馈,微信/QQ:68183131

    6307 人正在学习 去看看 秦子恒

PHP 开发微信小程序预下单接口, 复用的之前项目的代码, 就只改了小程序, 商户平台的相关参数, 获取prepayid(发起预支付) 提示签名错误, 用签名工具验证也没有问题.

可以确认商户平台的商户号和小程序的appid 是对的,那你需要添加或更换API安全中的API密码,我这里更换之后就没问题了, 不知道是不是商户平台的坑

2019-05-21 18:11:15 qq_40917843 阅读数 1253
  • 微信公众平台开发4-消息管理-微信开发php

    微信公众平台开发之消息管理是子恒老师《微信公众平台开发》视频教程的第4部。详细讲解了用php开发微信,对微信公众平台中的消息管理开发。内容包含微信关键字回复,多图文消息回复开发,接收图片消息,视频,小视频消息等等。欢迎反馈,微信/QQ:68183131

    6307 人正在学习 去看看 秦子恒

 java开发微信小程序预下单接口, 复用的之前项目的代码, 就只改了小程序, 公众号, 商户平台的相关参数, 获取prepayid提示签名错误, 用签名工具验证也没有问题. 

可以确认商户平台的apiKey是对的, 最后重置了一次apiKey就通过了, 有点坑.

2018-11-16 20:45:31 weixin_42838158 阅读数 1300
  • 微信公众平台开发4-消息管理-微信开发php

    微信公众平台开发之消息管理是子恒老师《微信公众平台开发》视频教程的第4部。详细讲解了用php开发微信,对微信公众平台中的消息管理开发。内容包含微信关键字回复,多图文消息回复开发,接收图片消息,视频,小视频消息等等。欢迎反馈,微信/QQ:68183131

    6307 人正在学习 去看看 秦子恒

接口开发好之后,调动一直报错签名错误,
照着:
SIGN_ERROR 签名错误 1、没有使用商户平台设置的商户API密钥进行加密(有可能之前设置过密钥,后来被修改了,没有使用新的密钥进行加密)。
2、加密前没有按照文档进行参数排序(可参考文档)
3、把值为空的参数也进行了签名。可到(http://mch.weixin.qq.com/wiki/tools/signverify/ )验证。
4、如果以上3步都没有问题,把请求串中(post的数据)里面中文都去掉,换成英文,试下,看看是否是编码问题。(post的数据要求是utf8) 1. 到商户平台重新设置新的密钥后重试
2. 检查请求参数把空格去掉重试
3. 中文不需要进行encode,使用CDATA
4. 按文档要求生成签名后再重试
在线签名验证工具:http://mch.weixin.qq.com/wiki/tools/signverify/
也没用,并且在线签名验证也是一样的。
后来发现是因为total_amount要传int但是我传了double导致的。
说明数据类型的错误也会导致报错签名错误。

2019-11-22 14:02:41 weixin_40136189 阅读数 6
  • 微信公众平台开发4-消息管理-微信开发php

    微信公众平台开发之消息管理是子恒老师《微信公众平台开发》视频教程的第4部。详细讲解了用php开发微信,对微信公众平台中的消息管理开发。内容包含微信关键字回复,多图文消息回复开发,接收图片消息,视频,小视频消息等等。欢迎反馈,微信/QQ:68183131

    6307 人正在学习 去看看 秦子恒

此文章致力解决在开发微信支付相关接口报【签名错误】,并不断升级更新

文章demo以'普通商户版’-‘JSAPI支付’作为案例(JSAPI支付文档)

先讲一下开发步骤和经验,文章后半部分讲排错经验

一 设置支付目录(文档链接

    支付目录,一定要设置实际支付页面的路径以 / 结尾,如果提示<当前页面URL未注册>,请检查自己实际支付页面的路径是否填写正确

 

发起支付的业务流程,我们做的操作应该是这样的:用户选择支付金额和其他参数-->用户点击支付-->前端向后台发起请求获取签名等参数-->后台调用统一下单接口,返回给前端需要的签名参数-->前端调用WeixinJSBridge.invoke-->用户填写密码-->支付成功-->微信发送通知给统一下单填写的回调方法。详细业务流程点我查看

 

二 后台调用统一下单接口文档链接

    此接口参数非常多,第一次开发的时候,建议开发者仔仔细细对每个参数进行比对。遇到签名错误的同学,大部分人的原因是因为参数填写错误导致的

    后台在给前端准备参数的时候,是要进行两次签名的:第一次是发送统一下单请求之前,对发送给微信的所有参数进行签名;第二次是微信返回预支付交易会话标识后,对传给前端的所有参数进行签名。

请注意,第一次签名和第二次签名的时候,参数是不一样的,第二次签名的时候,签名需要哪些参数呢?签名的参数是WeixinJSBridge.invoke需要用到的参数,和第一次签名需要的参数是不一样的!

对于参数package我第一次粗心大意,没有拼接字符串‘prepay_id=’希望大家也注意一些,前后台都需要拼接这个字符串‘prepay_id=’

    这是我刚刚花费10分钱获取的统一下单截图

    
   
 只有result_code和return_code都为SUCCESS的时候,说明调用成功,成功拿到预支付的id

三 前端获取参数后拉起微信支付(文档链接

    

 

其实完整坐下来,微信支付就这么点东西,只是大家可能有些不熟悉,对于大家遇到的签名错误问题,绝大部分是参数没有认真进行参数比对,参数不能多,也不能少。如果还报错,建议从下面一些方式进行排查

    ·首先排查签名方法是否正确(签名效验工具),如果自己写的签名方法和工具展示出来的结果一模一样,说明你签名的工具方法写的没有问题,那么就剩下参数的问题了!

    ·然后进行参数比对,根据开发文档,进行比对,一个字母都不能差

    ·第一次签名和第二次签名的APPID ,字母I一个是大写,一个是小写

    ·后端第二次签名,参数package一定不要忘记拼接prepay_id

    ·请再三确认appid和mch_id是否正确,如果同时进行多个公众号支付开发,一定不要弄混

    ·第二次签名参数timeStamp时间差距太大(你服务器时间要尽量准确,好像误差不能超过10分钟)

    ·中文参数错误,英文参数没有问题的,本文以MD5加密为例,请在加密的时候,指定编码格式为UTF-8

对于企业付款到零钱/银行卡

    ·尝试在商户平台的账户信息中更改API密钥(账户设置-安全设置-API安全), 15分钟后生效

    ·还是参数,参数,参数

终极杀器·缓存

    作者开发语言是java,之前缓存无处不在,myeclipse(开发者工具)的缓存,本地编译缓存,服务器tomcat的缓存,如果你觉得我就是对的,什么都排查过了,没有问题,OK,建议清理缓存(先删除tomcat里边的项目,再添加然后重新编译项目;服务器tomcat缓存,清理tomcat文件夹下work-catalina文件夹的内容)。实在不行,重启本地电脑。重启服务器server。

 

请各位同学一定要先自行排查问题,如果还无法解决问题,或者你遇到过其他bug情况,欢迎留言,我会及时更新到文章,以便帮助更多人解决签名错误的问题。ღ( ´・ᴗ・` )比心

没有更多推荐了,返回首页