微信支付结果通知签名错误问题分析与解决办法

问题

  • 微信支付结果通知校验签名的时候调用isPayResultNotifySignatureValid返回签名错误

分析

  1. 通过查看返回结果发现,微信返回的通知里面没有signType,而在isPayResultNotifySignatureValid方法里看到如果没有signType则默认为MD5类型
    微信支付结果通知签名错误问题分析与解决办法
  2. 在WXPay类里面可以发现,微信官方的沙箱环境签名类型是MD5,而我们在用WXPay时,默认是非沙箱环境,也就是HMACSHA256类型
    微信支付结果通知签名错误问题分析与解决办法

解决方案

  1. 通过前面的问题寻找与分析,已经得知了之所以签名错误是由于前后加密算法类型对应不上,在此,我的解决方式是在实例化WXPay时指定了MD5类型(亲测可用)
    微信支付结果通知签名错误问题分析与解决办法

  2. 百度上有答案说:WXPay如果isPayResultNotifySignatureValid该方法签名失败,用isResponseSignatureValid搞定(暂未尝试)