/** 商户号 */
public static String merchantId = "1101245633";
/** 商户API私钥路径 */
public static String privateKeyPath = "apiclient_key.pem";
/** 商户证书序列号 */
public static String merchantSerialNumber = "4AB2683D6D167EA4D1886131C437BFB485BFCC0E";
/** 商户APIV3密钥 */
public static String apiV3Key = "ZPXXwxzf1101245633Gongxiangsheng";
/** 初始化微信支付服务 */
public JsapiService initWxPayService() {
String privateKeyPath1 = getClasspathFileAbsolutePath(privateKeyPath);
Config config =
new RSAAutoCertificateConfig.Builder()
.merchantId(merchantId)
// 使用 com.wechat.pay.java.core.util 中的函数从本地文件中加载商户私钥,商户私钥会用来生成请求的签名
.privateKeyFromPath(privateKeyPath1)
.merchantSerialNumber(merchantSerialNumber)
.apiV3Key(apiV3Key)
.build();
// 初始化服务
service = new JsapiService.Builder().config(config).build();
return service;
}
如下是错误信息
[{"code":"SIGN_ERROR","detail":{"detail":{"issue":"sign not match"},"field":"signature","location":"authorization","sign_information":{"method":"GET","sign_message_length":85,"truncated_sign_message":"GET\n/v3/certificates?algorithm_type=RSA\n1765362220\nqeFssCwHvCPJf9gdma7eD8NRjvvnYOVR\n\n","url":"/v3/certificates?algorithm_type=RSA"}},"message":"错误的签名,验签失败"}] HttpRequest[{"http_method":"GET","url":"https://api.mch.weixin.qq.com/v3/certificates?algorithm_type=RSA","uri":"https://api.mch.weixin.qq.com/v3/certificates?algorithm_type=RSA","headers":{"headers":{"Authorization":"WECHATPAY2-SHA256-RSA2048 mchid=\"1101245633\",nonce_str=\"qeFssCwHvCPJf9gdma7eD8NRjvvnYOVR\",timestamp=\"1765362220\",serial_no=\"4AB2683D6D167EA4D1886131C437BFB485BFCC0E\",signature=\"H5dn8BK00qbe7jOX2Gl40YN4at8EdROuCGJ3uh9UzPE/G200Rg5lVlUuZcidTxQVSS9qj/fcIdcG0npIFzl2ISFWr7TiwK7TZnbkbM1oStMRRnfGymaMntQyZIV1r5ks1Tb2sclnn4rJQ47m4MZ2V0Yovx3cllwzR7gsFMG46vIe86uhdPaObnpHPbhqm2cvcCG+iLdGzNKprjQ/75mapHT0ntg9Vr5GIpCgFdufhxMoesZRBnweNLE7tAPWjF357FST00QvWcOuZociZgLFlsmGEcmj4AVcRW0XO6Ea+CYkx8zfj812fE5bKaXTTe9eqlva82k2nJP532JyynISRQ==\"","Accept":" */*","User-Agent":"WechatPay-Java/0.2.17 (Windows 11/10.0) Java/17.0.16 Credential/WechatPay2Credential Validator/ okhttp3/null","Content-Type":"application/json","Wechatpay-Serial":""}}}]

微信支付公钥和平台证书都是用于v3版本接口的验签及敏感信息加密,公钥没有有效期,便于维护,建议使用公钥方案:https://pay.weixin.qq.com/doc/v3/merchant/4012153196
这个商户号是公私钥方案的,SDK也请用公钥方案来初始化就可以了。
你好 v3密钥为商户敏感信息,辛苦尽快到商户后台重置。该帖子已隐藏。
贴完整代码,你这点代码没办法猜