歡迎來吐槽
自己總結一下微信支付吧。
微信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);
}