接口地址https://api.mch.weixin.qq.com/pay/unifiedorder
2024-07-24 14:57:08,214|default task-7|issm|ERROR|ProductDetailV3Action||submitOrder:提交订单异常:{}
java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.jpay.util.HttpUtils$OkHttp3Delegate.exec(HttpUtils.java:325) ~[IJPay-1.4.1.jar:na]
at com.jpay.util.HttpUtils$OkHttp3Delegate.post(HttpUtils.java:353) ~[IJPay-1.4.1.jar:na]
at com.jpay.util.HttpUtils.post(HttpUtils.java:50) ~[IJPay-1.4.1.jar:na]
at com.jpay.weixin.api.WxPayApi.doPost(WxPayApi.java:471) ~[IJPay-1.4.1.jar:na]
at com.jpay.weixin.api.WxPayApi.pushOrder(WxPayApi.java:115) ~[IJPay-1.4.1.jar:na]
at com.suning.issm.exter.wechatapplet.impl.PaySignWxImpl.pushPayOrder(PaySignWxImpl.java:50) ~[issm-exter-0.0.1-SNAPSHOT.jar:na]
根据开发者们的答复,你遇到的问题,解决方案总结提炼如下:
根据你提供的信息,微信支付下单V2接口报证书错误可能是由于服务器上请求时,携带了微信支付在2018年已经停用旧的自签API证书,请排查下相关代码,去掉证书即可。
具体排查参考下面的指引:
查看API证书是否自签API证书:openssl x509 -noout -text -in your_client_cert.crt如果查出来的证书颁发者显示的是MmpaymchCA,那么就确认是自签证书。
查看p12格式API证书是否自签API证书:openssl pkcs12 -info -in file.p12
是不是服务器上还用的以前的自签发证书?