微信企业红包开发签名一样一直提示签名错误的解决办法

本人的XML就不贴了,涉及一些敏感信息,按照签名算法生成的签名和微信官方提供签名平台生成的签名是一样一样的。

微信官方的签名验证平台: https://pay.weixin.qq.com/wiki/tools/signverify/ 

但测试发红包的时候,就一直提示签名错误!

按照官方的说明:

1、没有使用商户平台设置的商户API密钥进行加密(有可能之前设置过密钥,后来被修改了,没有使用新的密钥进行加密)。
2、加密前没有按照文档进行参数排序(可参考文档)
3、把值为空的参数也进行了签名。可到(http://mch.weixin.qq.com/wiki/tools/signverify/ )验证。
4、如果以上3步都没有问题,把请求串中(post的数据)里面中文都去掉,换成英文,试下,看看是否是编码问题。(post的数据要求是utf8)

有以上4种可能,我曾经还真遇到过空字符串折腾我到深夜的情况。(看来文档还是要好好看看呀)不过上次的问题是我的签名和官方验证的不一样。但这样不同,我的签名和官方验证的签名是一样的。依然签名错误

后台,,,的后台,,,终于在论坛上试了试这个方法解决了问题。

public String createXml() {
String sb = "<xml>";
sb += "<act_name>"+act_name+"</act_name>";
sb += "<client_ip>"+client_ip+"</client_ip>";
sb += "<mch_billno>"+mch_billno+"</mch_billno>";
sb += "<mch_id>"+mch_id+"</mch_id>";
sb += "<nonce_str>"+nonce_str+"</nonce_str>";
sb += "<re_openid>"+re_openid+"</re_openid>";
sb += "<remark>"+remark+"</remark>";
sb += "<send_name>"+send_name+"</send_name>";
sb += "<total_amount>"+total_amount+"</total_amount>";
sb += "<total_num>"+total_num+"</total_num>";
sb += "<wishing>"+wishing+"</wishing>";
sb += "<wxappid>"+wxappid+"</wxappid>";
sb += "<sign>"+sign+"</sign>";
sb += "</xml>";
return sb;
}

这是一段JVAV的代码,我参考这位的把顺序换了换,TMD竟然好了!!不是有排序吗?狗日的.....

贴个链接吧:http://bbs.csdn.net/topics/391866698#post-400701437

留念!!

阅读更多
文章标签: 微信 红包 签名 php
个人分类: php
想对作者说点什么? 我来说一句

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

不良信息举报

微信企业红包开发签名一样一直提示签名错误的解决办法

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭