收藏
回答

服务号绑定非同主体的微信支付商户号,怎么使用绑定的商户号收款

网页授权登录用的是服务号的appid和secret,然后支付V3用的绑定商户号。支付报错内容:Wrong HttpStatusCode[404]\nhttResponseBody[{\"code\":\"RESOURCE_NOT_EXISTS\",\"message\":\"无可用的平台证书,请在商户平台-API安全申请使用微信支付公钥。可查看指引https://pay.weixin.qq.com/doc/v3/merchant/4012153196\"}]\tHttpRequest[{\"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=\\\"174418****\\\",nonce_str=\\\"jm5lfx4ZXsjAs5zL1...\\\",timestamp=\\\"177915****\\\",serial_no=\\\"5C40D3759CC71A9...\\\",signature=\\\"IaXw5hg8CTh...\\\"\",\"Accept\":\" */*\",\"User-Agent\":\"WechatPay-Java/0.2.5 (Linux/3.10.0-1160.71.1.el7.x86_64) Java/1.8.0_352 Credential/WechatPay2Credential Validator/ okhttp3/null\",\"Content-Type\":\"application/json\"}}}]"}

获取RSAAutoCertificateConfig代码:

private RSAAutoCertificateConfig getRSAConfig(PayConfig payConfig) {
    String key = payConfig.getBusinessId() + payConfig.getAppid();
    if (configHashMap.containsKey(key)) {
        return configHashMap.get(key);
    }
    PrivateKey privateKey = PemUtil.loadPrivateKeyFromString(payConfig.getPem());
    RSAAutoCertificateConfig config = new RSAAutoCertificateConfig.Builder()
            .merchantId(payConfig.getMchid())
            .privateKey(privateKey)
            .apiV3Key(payConfig.getApiV3())
            .merchantSerialNumber(payConfig.getSerialNum())
            .build();
    configHashMap.put(key, config);
    return config;
}


回答关注问题邀请回答
收藏

1 个回答

登录 后发表内容