前言
我这里使用的是 微信支付 v3 sdk,sdk会帮我拼接签名,所以我初步判断是公司给我证书序列号错误
// 加载平台证书(mchId:商户号,mchSerialNo:商户证书序列号,apiV3Key:V3密钥)
AutoUpdateCertificatesVerifier verifier = new AutoUpdateCertificatesVerifier(
new WechatPay2Credentials(mchId, new PrivateKeySigner(mchSerialNo, merchantPrivateKey)), apiV3Key.getBytes("utf-8"));
错误信息
2022-02-11 11:08:39.171 WARN 25544 --- [ main] p.c.a.h.a.AutoUpdateCertificatesVerifier : Auto update cert failed, statusCode = 401,body = {"code":"SIGN_ERROR","detail":{"detail":{"issue":"sign not match"},"field":"signature","location":"authorization","sign_information":{"method":"GET","sign_message_length":66,"truncated_sign_message":"GET\n/v3/certificates\n1644548918\nn5QzvWmW369D7cHo36epwZ5UGhJ5DD3t\n\n","url":"/v3/certificates"}},"message":"错误的签名,验签失败"}
解决方案
更换正确的商户号与序列号