關於微信支付的那些事

博客已經轉移到個人站點:
http://www.wangchengmeng.club/2018/02/01/%E5%85%B3%E4%BA%8E%E5%BE%AE%E4%BF%A1%E6%94%AF%E4%BB%98%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B/

歡迎來吐槽

自己總結一下微信支付吧。

微信app開發文檔區:
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1

集成微信支付:

1-在微信開放平臺申請(省略)

2-在app的gradle文件中的dependencies下加入

compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'

3-在調用微信API之前先要初始化

//初始化微信支付
    public void initWxPay() {
        IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);
        msgApi.registerApp(app_id);
    }

4-定義支付回調類WXPayEntryActivity

清單註冊:

     <activity
        android:name=".wxapi.WXPayEntryActivity"
        android:exported="true"
        android:launchMode="singleTop"
        android:screenOrientation="portrait"/>

5-請求支付接口

向app端服務器請求支付參數,然後帶上參數請求支付接口:

PayReq request = new PayReq();
        if (null != param) {
           //微信支付參數 由服務端返回
           request.appId = param.appid;
           request.partnerId = param.partnerid;
           request.prepayId = param.prepayid;
           request.packageValue = "Sign=WXPay";
           request.nonceStr = param.noncestr;//生成一個隨機字符串
           request.timeStamp = param.timestamp;
           request.sign = param.sign;//簽名(服務端生成)
        }

        if (null != mIWXAPI) {
           mIWXAPI.sendReq(request);
        }

6-支付回調

    @Override
   public void onResp(BaseResp baseResp) {
      if (0 == baseResp.errCode) {
         //支付成功 0
         CanBus.getDefault().post(new Intent(Constants.WX_PAY_SUCCESS_CODE));
      } else if (-1 == baseResp.errCode) {
         //支付失敗 -1 可能參數錯誤,檢查簽名
         CanBus.getDefault().post(new Intent(Constants.PAY_FAILURE_CODE));
      } else {
         //支付取消 -2
         CanBus.getDefault().post(new Intent(Constants.PAY_FAILURE_CODE));
      }
      Utils.finish(this);
   }
發佈了49 篇原創文章 · 獲贊 38 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章