1. 程式人生 > >Cordova - 徹底搞定安卓中的微信支付插件!

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

以及 andro 發現 bug 輸入參數 為我 開始 如何 工具

你看到這個標題肯定會驚訝,一個Cordova的微信支付插件,有這麽誇張嗎?信不信由你,我相信,最終你會回來看這篇文章的!

一,不要使用的微信支付插件https://github.com/xu-li/cordova-plugin-wechat

上面的插件,是目前大家在網上搜索文章時候,推薦最多的插件,但是,插件開發者,已經不再維護這個插件了,從最新版插件的代碼看,確實是那樣,其中從2.1.0開始的bug,到了最終的2.3.0也沒有修復,而且還增加了bug!如果你不相信我的話,真的想使用上面這個插件,如果你沒有能力去修改bug,我強烈建議你使用2.1.0版本,安裝命令如下:

cordova-plugin-wechat@2.1
.0 --variable wechatappid=你的微信appid

下面是這個插件的bug列表,以及修復方法:

1,微信支付類安裝路徑錯誤。這個插件在安裝時候,把微信支付類安裝到了錯誤路徑下。當你安裝這個插件之後,你會發現在"你的工程目錄platforms\android"下有一個"src"文件夾,這個文件夾正常是不應該存在的,如果有是因為這個插件安裝JS的bug導致的!

修復方法1:修改安裝插件安裝JS文件。

打開文件“你的工程目錄\plugins\cordova-plugin-adam-wechat\scripts\android-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"目錄,直接拷貝到“你的工程目錄\platforms\android\app\src\main\java\com\sunylat”。

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 - 徹底搞定安卓中的微信支付插件!