最近在做一個有關微信支付的一個項目,所以在此總結一下微信支付sdk接入的問題,爲以後再次遇到此問題做個範例。
首先我們需要準備以下資源:
1).微信支付的AppId
2).微信依賴的Jar包
3).Activity類——>WXPayEntryActivity.java(可以從微信Demo中copy過來)
調起微信支付界面:
請求參數:
微信支付最主要的就是我們將參數給傳遞過去,發起支付的流程,提交訂單的時候的參數根據項目需要配置。
下面代碼就是調起微信支付:
PayReq req = new PayReq();
// 測試用appId
req.appId = json.getString("appid");
req.partnerId = json.getString("partnerid");
req.prepayId = json.getString("prepayid");
req.nonceStr = json.getString("noncestr");
req.timeStamp = json.getString("timestamp");
req.packageValue = json.getString("package");
req.sign = json.getString("sign");
req.extData = "app data"; // optional
Toast.makeText(PayActivity.this, "正常調起支付",Toast.LENGTH_SHORT).show();
// 在支付之前,如果應用沒有註冊到微信,應該先調用IWXMsg.registerApp將應用註冊到微信
api.sendReq(req)
回調如下:
返回結果:
<1>WXPayEntryActivity這個類是在你調起微信支付完成支付(或取消或失敗)後,再回到你的App時會調用的一個頁面。還需要注意的是這個類文件的路徑。
<2>若不需要回調的那個頁面可以將onCreate方法裏的setContentView(R.layout.pay_result) 給注掉。
<3>回調結果裏Demo給了一個彈窗,咱們如果不需要,也可以修改爲如下:
public void onResp(BaseResp resp) {
if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
if(resp.errCode==0){
//支付成功
}
finsh();
}
}
目前,我只做到這麼多,等後續發現問題會及時更新的。