1、最近需要将之前开发的一套电商程序从windows server服务器迁移到centos8.0上,调用微信下单接口发生异常ERROR [com.tencent.common.HttpsRequest] - http get throw Exception, 定位了一天时间,尝试了各种方案:
a、怀疑openjdk不支持ssl,重装openjdk并配置security.provider, 参考链接:https://blog.csdn.net/g893465244/article/details/52988829
b、怀疑DNS解析有问题,重新配置了DNS
c、将微信下单的接口地址换成http的地址,居然可以访问
d、使用hutool工具包发送微信下单api请求,可以发送
最终方案:
把发送https的工具包换成hutool-all-5.3.8.jar了,就可以成功的发送https请求了;原来我们使用的微信支付官方提供的jar(wxpay-scanpay-java-sdk-1.0.jar)实现的发送https请求,怎么都发送失败。
问题原因:
1、查看了下wxpay-scanpay-java-sdk中的源代码,居然使用协议还是TLSv1, 居然还是写死的。这算是一个天坑了吧。
2、参考https://developers.weixin.qq.com/community/develop/doc/000a00acea86e052e1494360456c00?highLine=No%2520appropriate%2520protocol ,应该是同一个问题,都是TLSv1协议的问题