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

 更新时间:2019年07月25日 09:16:46   作者:Cousoulis  
这篇文章主要介绍了微信支付--签名错误问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下

最近在做微信支付,调用微信的统一下单支付接口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的感觉是,愤怒、头痛、恶心,想打人。

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

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

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

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

总结

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

相关文章

  • 自动驾驶技术之V2X技术的介绍

    自动驾驶技术之V2X技术的介绍

    本章内容介绍了如何利用车辆自身的智能,还可以借助外部环境实现信息的获取,这一类技术统称为V2X技术。接下来我们大家一起来学习吧
    2021-08-08
  • MobaXterm的安装和使用及问题小结

    MobaXterm的安装和使用及问题小结

    MobaXterm是一款全能的终端连接工具,支持SSH连接,支持FTP、串口等协议。接下来通过本文给大家分享MobaXterm的安装和使用及遇到的问题解决方法,感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • Visual Studio中文注释乱码两种解决方案

    Visual Studio中文注释乱码两种解决方案

    这篇文章主要给大家介绍了关于Visual Studio中文注释乱码两种解决方案,如果在Visual Studio Code中注释出现乱码,可能是因为文件编码格式不正确,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • 使用Windows自带的IIS服务搭建本地站点并远程访问的操作方法

    使用Windows自带的IIS服务搭建本地站点并远程访问的操作方法

    在Windows系统中实际上集成了建立网站所必须的软件环境,今天就让我们来看看,如何使用Windows自带的网站程序建立网站吧,感兴趣的朋友一起看看吧
    2023-12-12
  • 99%的程序员都会收藏的书单 你读过几本?

    99%的程序员都会收藏的书单 你读过几本?

    99%的程序员都会收藏的书单 你读过几本?用书籍来武装你的大脑,拯救你的人生,还在等什么,速速收藏
    2017-11-11
  • Typora配置PicGo时提示Failed to fetch的问题解决(typora图像问题)

    Typora配置PicGo时提示Failed to fetch的问题解决(typora图像问题)

    这篇文章主要介绍了Typora配置PicGo时提示Failed to fetch的问题解决(typora图像问题),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Mercurial入门学习介绍

    Mercurial入门学习介绍

    Mercurail是一种分步式的版本控制器,和git类似,但是和传统的svn有着很大的区别,需要的朋友可以参考下
    2016-08-08
  • 盘点网络编程必须要知道的基础知识

    盘点网络编程必须要知道的基础知识

    这篇文章主要介绍了盘点网络编程必须要知道的基础知识,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2020-07-07
  • svn 常用命令集合

    svn 常用命令集合

    SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理
    2020-07-07
  • 软件测试之使用Fiddler实现弱网测试

    软件测试之使用Fiddler实现弱网测试

    我们在做运维测试中会使用到到很多软件测试工具,本篇文章给大家分析一下软件测试,教大家在软件测试时来使用Fiddler实现弱网测试
    2021-08-08

最新评论