问题描述
最近在接入微信支付的jsapi支付,遇到一个微信支付官方包的BUG,我使用java开发jdk是1.8的,开发工具:idea
在引入微信支付官方0.2.6包后,如下图:
在创建JsapiService对象时出现以下错误,如图1:
java.lang.NoSuchMethodError: kotlin.collections.ArraysKt.copyInto([B[BIII)[B] with root caus
大概的意思就是引用了okhttp的jar包,接口报异常。通常是因为引用了okhttp多个版本的包导致的,但是我是没有引用okhttp相关的包。
然后我查看maven包的依赖的关系和版本
在pom.xml文件里面右键Maven→Show Dependencies… 或者使用快捷键Ctrl+Alt+Shift+U,如图1,会生成maven依赖关系图,右键Show Categories→Show Conflicts/Duplicates,图2
最后发现微信支付引入的okhttp的4.10.0版本包里的kotlin-stdlib-common存在1.2.71和1.5.31两个版本,okhttp的4.10.0的版本自身就会存在冲突。
解决方案
知道原因后就好办了,首先把微信支付com.github.wechatpay-apiv3里的com.squareup.okhttp3包给过滤,再重新引入其它版本的okhttp3包,就可以正常使用了,具体如下图:
```xml
<!--微信支付相关 -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>3.4.2</version>
</dependency>
<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-java</artifactId>
<version>0.2.6</version>
<exclusions>
<exclusion>
<!-- 过滤okhttp包-->
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
</exclusion>
</exclusions>
</dependency>
今天的文章php支付接口对接教程_php支付接口对接教程「建议收藏」分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/87989.html