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

Posted sunylat

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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文件。

打开文件“你的工程目录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程序中的代码

以上是关于Cordova - 彻底搞定安卓中的微信支付插件!的主要内容,如果未能解决你的问题,请参考以下文章

phonegap(cordova) 自己定义插件代码篇----android ,iOS 微信支付工具整合

H5App打包支付方式

安卓也可以微信人脸支付

个人可申请的安全可靠的微信支付接口

Java中的微信支付:API V3 微信平台证书的获取与刷新

IOS版微信比安卓版少了哪些功能呢?为啥会少?