Cordova - 彻底搞定安卓中的微信支付插件!

休言女子非英物,夜夜龙泉壁上鸣。这篇文章主要讲述Cordova - 彻底搞定安卓中的微信支付插件!相关的知识,希望能为你提供帮助。
你看到这个标题肯定会惊讶,一个Cordova的微信支付插件,有这么夸张吗?信不信由你,我相信,最终你会回来看这篇文章的!
一,不要使用的微信支付插件:https://github.com/xu-li/cordova-plugin-wechat 
上面的插件,是目前大家在网上搜索文章时候,推荐最多的插件,但是,插件开发者,已经不再维护这个插件了,从最新版插件的代码看,确实是那样,其中从2.1.0开始的bug,到了最终的2.3.0也没有修复,而且还增加了bug!如果你不相信我的话,真的想使用上面这个插件,如果你没有能力去修改bug,我强烈建议你使用2.1.0版本,安装命令如下:

[email  protected]2.1.0 --variable wechatappid=你的微信appid

下面是这个插件的bug列表,以及修复方法:
1,微信支付类安装路径错误。这个插件在安装时候,把微信支付类安装到了错误路径下。当你安装这个插件之后,你会发现在"你的工程目录platformsandroid"下有一个"src"文件夹,这个文件夹正常是不应该存在的,如果有是因为这个插件安装JS的bug导致的!
修复方法1:修改安装插件安装JS文件。
【Cordova - 彻底搞定安卓中的微信支付插件!】打开文件“你的工程目录pluginscordova-plugin-adam-wechatscriptsandroid-install.js”,在44行左右,找到“targetFiles = ["EntryActivity.java", "WXEntryActivity.java", "WXPayEntryActivity.java"]; ”这行代码,把它上面的代码修改为:
var targetDir = path.join(projectRoot, "platforms", "android", "app","src","main","java", packageName.replace(/./g, path.sep), "wxapi");

修复方法2:不用修改此文件,直接拷贝用到的微信支付类到正确的包下。这根据你的工程名称决定了,假设现在工程的包结构为:“com.sunylat.test”,那么就应该把安装到上面错误目录中的"wxapi"目录,直接拷贝到“你的工程目录platformsandroidappsrcmainjavacomsunylat”。
2,JAVA类方法使用错误。Wechat.java中,有两处低级的JAVA编程错误,当编译的时候,会发现2.3.0,这个类中,有两个编译错误。
错误1:方法使用不当,使用的方法没有输入参数,而错误处加入了输入参数。这个错误,因为不了解程序的详细细节,暂时无法给出修复建议。
错误2:在静态类中,使用非静态类的字段。这个错误,把"static"修饰符去掉就可以了。
  对于一款这样的插件,无论从那个角度,我都不建议你继续使用了!!!
二,推荐使用的微信支付插件:
https://github.com/adam198824/cordova-plugin-wechat
这个插件,已经修复上面插件的所有错误!!我正在使用这个插件,而且测试完毕,在安卓和ios下都工作正常,所以我推荐这个微信支付插件!此插件作者不仅维护这个插件,还维护着支付宝插件,感谢adam198824!!!
三,如何能够使用“adam-wechat”插件?
“adam-wechat”插件就是上面我途径的差距,是“wechat”插件的一个分支,修复了最后一个版本以及先前版本“wechat”插件的的已知bug,上面我提到的3个bug!!仅仅知道这个插件确实可以使用,可能还不行,因为我们开发程序,不可能直接就写代码,随后测试都不做,就发布了,那么怎么能够完成这个程序的测试过程?你真的耐心看下去!
(一)测试APP的准备工作:
  1,微信支付接口准备。
A,必须通过腾讯公司审核,拿到微信appid。
B,生成微信支付接口提交数据的工作已经完成,给微信支付接口提交数据前,必须生成对应的支付数据,随后向微信支付接口提交这些数据,才能支付。
C,下载腾讯公司提供的签名生成工具,下载后,安装到测试手机中,等要测试手机APP时候,生成添加到腾讯微信支付接口验证签名的对应处。
2,安装“adam-wechat”插件。执行安装命令:
cordova plugin add cordova-plugin-adam-wechat --variable wechatappid=你的微信APPID

(二)编写cordova程序中的代码

    推荐阅读