1. 程式人生 > >第三方整合---微信支付整合與使用

第三方整合---微信支付整合與使用

先來一波微信支付的流程圖

商戶系統和微信支付系統主要互動說明:

步驟1:使用者在商戶APP中選擇商品,提交訂單,選擇微信支付。

步驟2:商戶後臺收到使用者支付單,呼叫微信支付統一下單介面。

步驟3:統一下單介面返回正常的prepay_id,再按簽名規範重新生成簽名後,將資料傳輸給APP。參與簽名的欄位名為appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式為Sign=WXPay

步驟4:商戶APP調起微信支付。

步驟5:商戶後臺接收支付通知。

步驟6:商戶後臺查詢支付結果。

下面開始羅列步驟實現C端的微信支付功能:

1.先去微信官網上申請微信支付所需要的各種APPID等,申請的時候可能需要你的包名,與簽名信息等,獲取簽名信息時,可能會踩坑。(一定要保證你的包名與正式版釋出一致,坑點)。

3.匯入依賴:  import 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+' ;

4.加上許可權:

<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />

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

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

   *;

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

   *;

}

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

   *;

}

6.請求支付前需要

商戶APP工程中引入微信JAR包,呼叫API前,需要先向微信註冊您的APPID,程式碼如下:

final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);

// 將該app註冊到微信

msgApi.registerApp("wxd930ea5d5a258f4f");   //填自己的appid.

7.吊起支付:

IWXAPI api;
PayReq request = new PayReq();
request.appId = "wxd930ea5d5a258f4f";
request.partnerId = "1900000109";
request.prepayId= "1101000000140415649af9fc314aa427",;
request.packageValue = "Sign=WXPay";
request.nonceStr= "1101000000140429eb40476f8896f4c9";
request.timeStamp= "1398746574";
request.sign= "7FFECB600D7157C5AA49810D2D8F28BC2811827B";
api.sendReq(request);
 

8.回撥方法在Demo 的WXPayEntryActivity類中(這個類路徑必須為你的包名+wxapi,所以把他帶包整個粘過來就好了,就像我盜的圖一樣)。

9. 在WXPayEntryActivity的onResp()裡接收支付結果的返回狀態:

 請大家愉快的開始愉快的敲程式碼吧!