微信支付接口返回“签名错误”的排查方法

微信支付接口返回“签名错误”的排查方法

1、确认公众号的appSecret和商户号的API密钥没有搞混。
2、重置商户API密钥。(本人亲测是这样解决了问题,tx真是个坑,我严重鄙视。)
3、确认公众号授权的域名和目录是正确的。
4、参数body含有中文字符,改换英文签名成功,那么就转换字符编码试试。

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

5、血的教训,以上都试过之后,再仔细对比参数,确认签名算法没有问题,可以使用官网的调试工具验证自己的签名是否正确。
https://pay.weixin.qq.com/wiki/tools/signverify/

以上是常见的解决方法,可是有一次查询退款的时候发现其他接口的签名是正常的就查询退款出现签名错误。

6、 parameter里有不能带null的。