wechatpay-apiv3/wechatpay-java

使用代理的情况下,初始化config 中下载证书出错

liulizhen9912 opened this issue · 1 comments

错误描述

DefaultHttpClientBuilder clientBuilder =
new DefaultHttpClientBuilder()
.proxy(proxy);
Config config =
new RSAAutoCertificateConfig.Builder().httpClientBuilder(clientBuilder)

重现bug的步骤

初始化RSAAutoCertificateConfig 的时候,通过proxy方式,通过代理服务器发送http,好像是证书返回是空
httpClient.execute(httpRequest, DownloadCertificateResponse.class);
result = {HttpException@1958} Method threw 'com.wechat.pay.java.core.exception.HttpException' exception.
httpRequest = {HttpRequest@1962} "{"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="11",nonce_str="oF8l8KVnMO5fMwHzElhS4LyaOWpQo6pg",timestamp="1695127868",serial_no="7EE51C7E8255916B16D5EB776E714C39DA31E786",signature="jYc7Y0wbRMkX+Hcz9jGMGHxFbRXqZlYraB9WfBZUgZQ4F7503mXjEnniQf1tutnS7ptPyNe12cR+/cvf32XwhlJUmb6B+mHvG78cHfm0nA4OTVZaDQMVrWIzn5r2FwItsCpNXjDXYmwTDVdajYUfUntq6QPjHjCusM0VH6s4ryatK0Envi0D0mwHoOMIjNdPGrzfHTDaNdY3AlwXMwi18JYzB/hynaWQsYTiI/B999RLKBYlrhvo5zsRvW+/SKLufD+G4WGFBn3r0HcQE1Ghk0GJqW1G1/zeiGx5TqlA7sPq/RHr3NaV90g6pys4JIQKkrz0stjEOTs4YlCgiDMDPQ=="","Accept":" /","User-Agent":"WechatPay-Java/0.2.11 (Windows 10/10.0) Java/1.8.0_161 Credential/WechatPay2Credential Validator/ okhttp3/null","Content-Type":"application/json"}}}"
detailMessage = "Send Http Request failed,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="11",nonce_str="oF8l8KVnMO5fMwHzElhS4LyaOWpQo6pg",timestamp="1695127868",serial_no="7EE51C7E8255916B16D5EB776E714C39DA31E786",signature="jYc7Y0wbRMkX+Hcz9jGMGHxFbRXqZlYraB9WfBZUgZQ4F7503mXjEnniQf1tutnS7ptPyNe12cR+/cvf32XwhlJUmb6B+mHvG78cHfm0nA4OTVZaDQMVrWIzn5r2FwItsCpNXjDXYmwTDVdajYUfUntq6QPjHjCusM0VH6s4ryatK0Envi0D0mwHoOMIjNdPGrzfHTDaNdY3AlwXMwi18JYzB/hynaWQsYTiI/B999RLKBYlrhvo5zsRvW+/SKLufD+G4WGFBn3r0HcQE1Ghk0GJqW1G1/zeiGx5TqlA7sPq/RHr3NaV90g6pys4JIQKkrz0stjEOTs4YlCgiDMDPQ=="","Accept":" /","User-Agent":"WechatPay-Java/0.2.11 (Windows 10/10.0) Java/1.8.0_161 Credential/WechatPay2Credential Validator/ okhttp3/null","Content-Type":"application/json"}}}]"
cause = {IOException@1964} "java.io.IOException: unexpected end of stream on null"
stackTrace = {StackTraceElement[10]@1965}
0 = {StackTraceElement@1969} "com.wechat.pay.java.core.http.okhttp.OkHttpClientAdapter.innerExecute(OkHttpClientAdapter.java:52)"
1 = {StackTraceElement@1970} "com.wechat.pay.java.core.http.AbstractHttpClient.execute(AbstractHttpClient.java:44)"
2 = {StackTraceElement@1971} "com.wechat.pay.java.core.certificate.CertificateDownloader.download(CertificateDownloader.java:81)"
3 = {StackTraceElement@1972} "com.wechat.pay.java.core.certificate.AutoCertificateService.lambda$register$0(AutoCertificateService.java:66)"
4 = {StackTraceElement@1973} "com.wechat.pay.java.core.certificate.AutoCertificateService.register(AutoCertificateService.java:72)"
5 = {StackTraceElement@1974} "com.wechat.pay.java.core.certificate.RSAAutoCertificateProvider.(RSAAutoCertificateProvider.java:40)"
6 = {StackTraceElement@1975} "com.wechat.pay.java.core.certificate.RSAAutoCertificateProvider.(RSAAutoCertificateProvider.java:19)"
7 = {StackTraceElement@1976} "com.wechat.pay.java.core.certificate.RSAAutoCertificateProvider$Builder.build(RSAAutoCertificateProvider.java:134)"
8 = {StackTraceElement@1977} "com.wechat.pay.java.core.RSAAutoCertificateConfig$Builder.build(RSAAutoCertificateConfig.java:117)"
9 = {StackTraceElement@1978} "com.qujie.openplat.service.impl.Test.main(Test.java:56)"

预期行为

如果不能解决,是否可以通过其他方式跳过

导致错误的代码片段

No response

操作系统

liunx

Java 版本

8

wechatpay-java 版本

0.2.11

其他信息

No response

请参考 代理配置

如果你是按以上指引操作的,试试用本地平台证书加代理的方式,能否正常使用呢?