收藏
回答

Validate response failed,the WechatPay signature?

v3,调用SDK,jspiService.prepay,提示错误信息com.wechat.pay.java.core.exception.ValidationException: Validate response failed,the WechatPay signature is incorrect.

同事打印出了Request-IDhe responseHeader和 responseBody,包含了prepay_id,说明我的下单已经成功了,但是sdk响应数据一直错误。

哪位大佬帮忙解决一下

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

2 个回答

  • 龙卷锋
    龙卷锋
    2023-03-01
    config设置错了,这个配置会用平台证书验证response的签名,就不会报错了
    // 示例代码 
    Config config =
            new RSAAutoCertificateConfig.Builder()
            .merchantId(mchid)
            .privateKeyFromPath(privateKeyPath)
            .merchantSerialNumber(merchantSerialNumber)
            .apiV3Key(apiV3key)
            .build();
    
    
    JsapiServiceExtension service = new JsapiServiceExtension.Builder().config(config).build();
    
    QueryOrderByOutTradeNoRequest queryRequest = new QueryOrderByOutTradeNoRequest();
        queryRequest.setMchid(mchid);
        queryRequest.setOutTradeNo(outTradeNo);
    


    2023-03-01
    有用 1
    回复
  • @X  熊
    @X 熊
    2023-07-14

    商户转账到零钱sdk提供的里面的config配置也会出现这个问题将,签名报:Validate response failed,the WechatPay signature is incorrect.

    RSAConfig config =
    16        new RSAConfig.Builder()
    17            .merchantId(merchantId)
    18            .privateKeyFromPath(privateKeyPath)
    19            .merchantSerialNumber(merchantSerialNumber)
    20            .wechatPayCertificatesFromPath(wechatPayCertificatePath)
    21            .build();
    替换为
    Config config =
            new RSAAutoCertificateConfig.Builder()
                    .merchantId(merchantId)
                    .privateKeyFromPath(privateKeyPath)
                    .merchantSerialNumber(merchantSerialNumber)
                    .apiV3Key(apiV3key)
                    .build();
    就可以了楼上的大哥非常给力
    


    2023-07-14
    有用
    回复
登录 后发表内容