主页 > 知识库 > 微信支付--签名错误问题的解决方法

微信支付--签名错误问题的解决方法

热门标签:服务器配置 银行业务 铁路电话系统 网站文章发布 呼叫中心市场需求 检查注册表项 美图手机 智能手机

最近在做微信支付,调用微信的统一下单支付接口http://mch.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=9_1时,老是返回“签名错误”,偶尔可以成功,不知道是怎么回事。我在日志中打印出生成的字符串和签名,然后用相同的数据在微信支付提供的在线支付调试工具生成签名,发现生成的签名结果一样!生成的最终xml也一样,但接口就是返回

xml>return_code>![CDATA[FAIL]]>/return_code>
 return_msg>![CDATA[签名错误]]>/return_msg>
 /xml>

POST给微信的xml内容:

xml>
appid>![CDATA[wxe587fed28211bccb]]>/appid>
body>![CDATA[Demo]]>/body>
device_info>![CDATA[WEB]]>/device_info>
fee_type>![CDATA[CNY]]>/fee_type>
mch_id>![CDATA[1265056801]]>/mch_id>
nonce_str>![CDATA[ejnshgum39igp6qwpvzwb5jbwk8yigqz]]>/nonce_str>
notify_url>![CDATA[http://testpay.le1.com.cn/wechat/notify.htm]]>/notify_url>
openid>![CDATA[opZb3wsfU6RUZGxgFZ6OXVbdVxcU]]>/openid>
out_trade_no>![CDATA[1002_09745565EpuxTunUCD0AA72E]]>/out_trade_no>
product_id>![CDATA[QWE789C1523QWE78]]>/product_id>
sign>![CDATA[BF4BB39FFAFC4DF470C5A3F7784678BD]]>/sign>
spbill_create_ip>![CDATA[172.16.12.171]]>/spbill_create_ip>
total_fee>![CDATA[1]]>/total_fee>
trade_type>![CDATA[NATIVE]]>/trade_type>
/xml>

首先 , 看到返回msg显示签名错误 , 第一反应官网提供的路径去生成了一下签名做比较 , 结果发现签名算法是没错的.

     https://pay.weixin.qq.com/wiki/tools/signverify/

找了各种方法 , 百度谷歌搜索了一下午 , 发现很多同行都遇到了一样的问题 , 得到了以下解决方法

  1、确认公众号的appSecret和商户号的API密钥没有搞混。

  2、重置商户API密钥。(本人亲测是这样解决了问题,tx真是个坑,我严重鄙视。)

  3、确认公众号授权的域名和目录是正确的。

  4、参数body含有中文字符,改换英文签名成功,那么就转换字符编码试试。

    $dat = iconv('UTF-8','ISO8859-1',array2xml($package));

然而 , 并没有解决问题 , 先吐槽一下微信支付这个巨坑 , 不是说它的api水平有多烂,但你至少说明白一点啊,每次看微信api都头痛。比阿里差的不是一个数量级的。调阿里api都是,优雅、简单、舒服,效率高。调微信api的感觉是,愤怒、头痛、恶心,想打人。

后续问题解决后会在该随笔追加解决方案 .

追加: 问题已解决 , 重置了三次商户密钥.(....................)

在解决过程中又发现了一个较大的坑 , 在二维码支付模式中 , 本来的设计是生成二维码之后展示到页面上让用户去长按识别来支付 , 但是今天发现微信关闭了这个功能 , 只能是用另外一台手机去扫码支付 .

由于用户体验及其不好 , 后改用公众号支付模式 .

总结

以上所述是小编给大家介绍的微信支付--签名错误问题的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

您可能感兴趣的文章:
  • C# 微信支付 wx.chooseWXPay 签名错误的解决方法
  • 使用weixin-java-tools完成微信授权登录、微信支付的示例
  • php对微信支付回调处理的方法
  • JS实现仿微信支付弹窗功能
  • php实现微信支付之企业付款
  • Android微信支付获取二次签名Sign的方法

标签:红河 河南 沈阳 沧州 上海 新疆 乐山 长治

巨人网络通讯声明:本文标题《微信支付--签名错误问题的解决方法》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266