如今的第三方付费已然是支付宝与微信支付的天下了,当然这是在国内。本文主要讲述一下接入微信支付的一些问题,避免重复踩坑。
微信支付的文档很坑,也许不仅仅是微信支付这一块的开发文档。所提供的Demo必须手动下载解压导入,没错,就是这么原始,美其名为了安全着想。
image.png
跟着官方的指导,把官方的文档加载下来了,导入Android Studio。
微信支付的官方Demo是用Eclipse开发出来的,所以导入AS种会有一些问题出现。
问题1:error: expected reference but got (raw string) @+android:style/Animation.Translucent.
这个是gradle 3.X 的坑,网上给予的解决方案是,更换gradle版本,比如更换成4.2.1。
但是呢,仅仅是为了这个而去修改gradle版本,可能会引起更多的问题,比如说持续集成的问题。
解决:
不更换gradle版本,这个错误是“+“”的锅,因此可以将“@+android:style/Animation.Translucent”这一个出现在项目中的代码,去掉“+”。Rebuild ,然后发现控制台报了很多查找不到资源的问题,包的路径出错。代码涉及的文件并不是很多,这里采用的做法是,手动导入那些资源包。
再次Rebuild,出现问题。
问题2:Program type already present: com.tencent.a.a.a.a.a
这是因为官方Demo下载到本地的时候,里面包含libammsdk.jar、wechat-sdk-android-with-mta.jar两个库。而wechat-sdk-android-with-mta是比较齐全的库,已经包含了微信分享、登录、收藏、支付等功能,两者出现冲突。
解决:
删除libammsdk这个库,重新Rebuild,Demo可以正常跑起来了。
PS:
接入微信支付时,调试遇到的大部分问题都是签名错误的问题,所以调试过程中,要多注意签名是否准确。