Android集成微信支付

Android集成微信支付

   項目中集成第三方支付的功能,基本是我們app中經常用到的功能。今天先給大家講一下微信支付的集成過程,重點只說一下代碼部分。
   首先,你要到微信開發者平臺註冊賬號,並創建你的應用,通過包名和簽名拿到AppId和申請支付功能。
   ![申請應用支付功能](https://img-blog.csdn.net/20160705154140753)
  • 下面就是具體的代碼部分
    ps:微信支付並不需要再清單文件中添加什麼配置信息,只需代碼正確就可以。

初始化:先在頁面初始化的地方,註冊微信支付

api = WXAPIFactory.createWXAPI(this, null);
// 將該app註冊到微信
api.registerApp("您的appId");

在需要支付的地方,調用微信支付的方法:

IWXAPI api;

PayReq request = new PayReq();

request.appId = "您的appId";

request.partnerId = "1900000109";

request.prepayId= "1101000000140415649af9fc314aa427",;

request.packageValue = "Sign=WXPay";

request.nonceStr= "1101000000140429eb40476f8896f4c9";

request.timeStamp= "1398746574";

request.sign= "7FFECB600D7157C5AA49810D2D8F28BC2811827B";

api.sendReq(req);

appI 就是你平臺註冊應用申請的id,寫死就可以
partnerid 商戶號,服務器給你返回,或者你寫死也可以
prepayid 預支付交易會話ID 也就是你的訂單信息,這個肯定你們服務器返回的,沒的商量
packageValue 擴展字段,可以按照文檔上寫死
noncestr 隨機字段 服務器返回 你要自己寫那就按照文檔上的算法自己來寫吧
timeStamp 時間戳 也是服務器給你返回
sign 簽名 服務器返回 自己寫有點麻煩

好了到這裏,只要你的這些參數全部正確,你就可以正確的調起微信支付!

  • 支付是否成功,肯定要給用戶反饋一個結果,那就要根據微信給你的回調,來反饋給用戶結果。
    在你項目全包名下,新建wxapi包,然後WXPayEntryActivity類(包名或類名不一致會造成無法回調);在類中實現onResp函數。
@Override
    public void onResp(BaseResp resp) {
        switch (resp.errCode) {
        case 0:
                Toast.makeText(getApplicationContext(), "支付成功", Toast.LENGTH_LONG).show();
            break;
        case -1:

                Toast.makeText(getApplicationContext(), "支付失敗", Toast.LENGTH_LONG).show();
            break;
        case -2:
                Toast.makeText(getApplicationContext(), "取消訂單", Toast.LENGTH_LONG).show();
            break;

        default:
            break;
        }
    }

一定不要忘記,將activity註冊到清單文件中

 <!-- 微信分享回調 -->
        <activity
            android:name=".wxapi.WXEntryActivity"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true"
            android:screenOrientation="portrait"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

到這裏就是微信文檔的全部了,但是,坑就在這裏了,到這還沒有完,文檔標註我們還需要註冊廣播接收者,來接受微信的回調,在清單文件中,註冊一下,但清單文件中如果添加了,項目可能會崩潰,所有不要註冊

 <!-- 支付回調接收者 -->
        <receiver android:name=".AppRegister" >
            <intent-filter>
                <action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP" />
            </intent-filter>
        </receiver>

OK!到這,基本就是微信支付的全部集成。
PS:集成完測試的時候,記得一定要打包以後測試支付功能,不進行打包的話,微信支付,還有微信分享都會出現調不出微信的情況!而且註冊時候的簽名,也是需要你打包以後,獲取的應用簽名!

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