不知道有没有用官方JAVA SDK的同学。这里下的:
https://pay.weixin.qq.com/wiki/doc/api/native.php?chapter=11_1
本来一直运行的妥妥的,买了产品不满意的用户,直接线上就退款了。
突然今天有人说坑钱,好多天了,退款不到账。
我这哪里受得了呀,然后就去看历史记录了,果然有两个退款订单,好几天了都没到账。
然后开始检查吧,一直以为是业务代码,找了半天也没发现撒问题,这才反应过来,会不会SDK出问题了?立马切换到SDK路径下的日志。
No appropriate protocol (protocol is disabled or cipher suites are inappropriate) |
然后就去找SSL部分的代码。
赫然发现WXPayRequest类下面67行:TLSv1
神马?TLSv1?总算明白了,这个不推荐的协议,WX肯定更新了服务端,去掉了这个协议。
使用官方SDK,然后调用接口爆上面的错的同学,请做如下操作:
系统禁用了不安全的协议,改下jdk配置文件/etc/crypto-policies/back-ends/java.config或者/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el8_4.x86_64/jre/lib/security/java.security里disabledAlgorithms字段,删除TLSv1即可。
直接把 new String[]{"TLSv1"} 改成 null 就行了,感谢大佬。
确实存在这个问题
感谢大佬,网上尽是甩锅给jdk的,搞得我还重装了一个jdk版本,太坑了
升级一下java sdk就可以了,用了3.9.0版本,大大的bug,官方文档搜不到
感谢大佬
大佬牛pi!解决了我两天的困扰,什么删SSLv3啥的都没有用,原来是代码的锅!!
我测试环境退款 以前可以退款的 最近 报No appropriate protocol (protocol is disabled or cipher suites are inappropriate)这个错误, 生产环境 可以退款,代码是一样的。按照楼上的办法试了 没用
我也遇到这问题了,升级一下java sdk就可以了,3.9以上的去掉了
多谢分享,和反馈。
我就想问问一门一个这么大的支付平台,为什么文档做的这么烂?
也没有测试账号,或者开发者账号进行支付的测试,要想对接你们还得自己有家公司?
找了一大圈就是没办法自己调试,我真的是服了!