1. 程式人生 > >unity接入微信支付-Android篇

unity接入微信支付-Android篇

一般流程就是在android原生接入微信支付sdk測試通過後,再增加一個activity繼承自UnityPlayerActivity,用於和unity通訊。

1、 微信支付eclipse工程下載地址:http://code.taobao.org/p/weixinzhifu/src/


2、匯入工程後首先要做的就是修改APP_ID、MCH_ID、API_KEY(此時認為你已獲得appid、商戶號、api金鑰,沒有的話就先去微信開發者平臺申請開通微信支付,在商戶平臺設定api金鑰,這裡就不詳述。)有幾個地方需要修改:Constants.java、PayActivity.java;還有微信id也要修改為自己的,AndroidManifest.xml裡面 <data android:scheme="wxfc0eb70545ba99aa" />。



3、更改包名,必須要和微信開發平臺註冊的包名一樣


在上訴步驟做完後,那麼你就可以簡單的進行除錯了

《此處來自:http://blog.csdn.net/qq_33639362/article/details/52085099》

在點選支付按鈕時,會出現如下情況

1、微信支付結果為-1,表示支付失敗

2、微信支付結果為0,表示支付成功

3、微信支付結果為-2,表示取消支付

在你除錯支付時如果出現第一種情況,原因有如下

(1)應用sign簽名錯誤

(2)沒有正確修改你的包名、APPID等

(3)prepayID重複使用

當你出現第一種錯誤時,就說明你需要一個伺服器來完成sign簽名,以及構造發給微信所需要的引數(請參考連結的微信官方文件

https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1),當你獲取到了正確的sign簽名還是報錯,那麼你可以仔細檢查下你的應用簽名是不是你自己的,如下圖


開啟這個視窗的步驟是選擇Window-Preferences-Android-build,檢查你的MD5簽名是否正確,如果不正確,那麼你可以在微信開放平臺裡下載簽名生成工具,以下是連結

如果你沒有伺服器的話,且第二、第三種都是對的,那麼你可以清空微信資料(記住是清空微信資料,不是微信快取),具體操作步驟為開啟手機設定裡的應用管理,找到微信,開啟選擇清除快取,這樣你的微信支付結果就不是為-1了。

當你出現第二種錯誤時,那麼請你仔細檢查PayActivity和AndroidMainfest以及Constants這三個檔案裡的APPID、APPSecret等有沒有換成你自己的,還有就是仔細檢視你的包名是不是正確,這裡提一下你的WXPayEntryActivity這個檔案一定要在wxapi目錄下面。

4、與unity互動

新建一個PayInfoManager類,用於管理支付資料。


新建一個Layout


新建一個MainActivity

重新配置AndroidManifest.xml


此時測試,應該就是先執行paylhy,點選button進入支付介面;

如果此時執行正常的話,那恭喜你,馬上就可以見到期待已久的jar包。。

在unity的安裝目錄下找到classes.jar匯入該eclipse工程,然後java build path


更改MainActivity.java

此時在eclipse裡面已不能執行測試,進入jar打包:右鍵工程名-Export-java-jar file-next-next-finish


將打包的PayWX13.jar、工程裡的libs和res、AndroidManifest.xml全部複製到unity工程下。

注意在打包的時候把沒有用的東西刪除,不然匯入unity有各種坑。。資料夾如下


5.unity搭建測試環境


至此結束,希望大家測試順利。。有什麼問題提出來大家一起交流。。。