private static String buildHeaderMessage(String httpMethod, String absoluteUrl, long timeStamp, String nonceStr, String body) {
// StringBuilder sb = new StringBuilder();
// sb.append(httpMethod).append("\n")
// .append(absoluteUrl).append("\n")
// .append(timeStamp).append("\n")
// .append(nonceStr).append("\n")
// .append(body==null ? "" : body).append("\n");
// return sb.toString();
String s = httpMethod + "\n" + absoluteUrl +"\n" +timeStamp +"\n" + nonceStr +"\n" + "\n";
return s;
}
下面是出现的错误:
签名错误问题可以按照以下几点进行排查:
1、使用签名检查工具校验签名算法是否有误
2、确认秘钥是否有误(服务商模式使用服务商商户号秘钥,秘钥是在商户平台配置,如果同一商户号调用其它接口成功可排除是秘钥问题)
3、确认接口实际的请求参数与生成签名原串的参数一致,不能增加或缺少参数(可通过打印签名原串进行排查)
4、确认参数的大小写,参数名与接口文档一致
5、签名原串的参数值使用原始值,不需要encode
6、接口需要使用UTF-8编码
如果还不能解决你的问题,请前往请前往微信支付V3文档, 点击右下角“技术咨询”实时寻求技术帮助。