Android集成微信支付SDK

最近接了集成android微信支付SDK的需求,感覺跟其它的SDK的接入並無太大區別,只不過有一些坑可能需要踩,前人已經踩的差不多了,本人就少踩了一些,總結一下最新的微信支付SDK的集成過程與注意事項。


1. 去官網上申請微信支付所需要的各種APPID等,申請的時候可能需要你的包名,與簽名信息等,獲取簽名信息時,可能會踩坑,(一定要保證生產環境可以支付,要不然等到發版時,發現生產環境不能用,重新提交申請,得等1,2個工作日,老闆就得拿你說事兒了),可以參考我的另一篇文章:

http://blog.csdn.net/yukimineryuu/article/details/53041552 《微信授權登錄錯誤記appid》,因爲之前申請過微信授權登錄時用的APPID,微信支付時,用的同一賬號,因此,appid用以前申請的就可以了。


2. 下載微信官方android支付DEMO: https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1

3. 僅參考它的demo代碼(本人試着運行了下,提示“服務器請求錯誤”,就再沒鼓搗它了)

4. 引入libs包。依據官方文檔,已不再維護eclipse的jar包版本的sdk了,需要大家儘快切換到Android Studio來(AS太好用了),引入的方式是使用jcenter.

如下:

dependencies {
    compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
}
同步完成即可。


5. 由於微信SDK改成通過Gradle的方式發佈到jcenter,包名做了相應修改,從原來的com.tencent.mm.sdk修改爲com.tencent.mm.opensdk,需要開發者修改對應的import語句

6. 如果要是有混淆,要將之前的舊包名的混淆改成如下:

-keep class com.tencent.mm.opensdk.** {

   *;

}

-keep class com.tencent.wxop.** {

   *;

}

-keep class com.tencent.mm.sdk.** {

   *;

}

7. 註冊微信:

我是在Application裏註冊一次,保證初始化的時候註冊了就好(官網盜圖):


8. 從你們的java後臺,獲取到數據(必須的是以下7條,其中appId可以自己在代碼裏寫死),添到下面大紅框裏就可以了,最後一個字段extData是optional(非必選),根據業務自行選擇。



9. 在你的包名下(即下圖紅框就是包名),

再建一層目錄,必須叫:wxapi, 這個目錄下的文件必須叫:WXPayEntryActivity

如何確認是否建立正確: 打開你的WXPayEntryActivity,看到代碼裏第一行的package是否正確,如下圖所示:



10, 然後在AndroidManifest.xml裏聲明一下,有人說必須這樣聲明,但微信支付給的官網demo裏是簡化的,不知道簡化的調起WXPayEntryActivity是否有效,我沒有驗證,反正用其他開發者提供的下面的聲明沒有問題:


<activity android:name=".wxapi.WXPayEntryActivity" android:exported="true" android:launchMode="singleTop"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="your AppId"/> </intent-filter> </activity>

11 , 在WXPayEntryActivity裏接收支付結果的返回狀態:


因爲WXPayEntryActivity還是一個activity,他是有界面的,所以當我得到返回碼的時候把它finish()掉了,然後通過EventBus發送狀態碼給JAVA後臺(當然, 這裏是用的接口)

12 ,其它的配置,可以參考微信的DEMO代碼,比如權限申請,activty在清單文件裏的聲明等。

本文只列舉出了注意點。供大家參考,免得以後再踩坑。


13, 關於支付狀態碼 -1 :

有各種情況,首先保證包名與線上簽名信息一致,再就是運行的時候,使用

gradle clean assembleRelease打出apk包,再簽名運行。不要直接用鼠標點擊IDE的RUN


以上就是我此次集成遇到的問題,關鍵點應該都有,如果有遺漏,請大家指正。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章