1 先上微信签名验证工具试试有没有错,如果有错就慢慢排查参数 ,加密方式之类的常规错误,https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=20_1
2 如果验证通过,有可能是秘钥出错(上商户平台再看一眼秘钥)
3如果秘钥没错,签名验证工具通过,但是一直报签名错误,很大可能是参数含有中文(深坑!!!!),解决方法1 中文换英文,2 换英文是治标不治本,这个主要是编码问题,搞清楚自己编码,一定要所有地方都一样,不然就算签名没问题了,微信支付通知里的中文也是乱码
出现编码问题导致的签名错误,最好在所有地方都加上编码格式,转文字编码不顶用,会乱码,下面是本人出现错误的地方
StringEntity reqEntity = new StringEntity(reuqestXml,"UTF-8");
就是在这边少了UTF-8!!!