-
微信支付大體步驟:
- web上創建應用部分:
注冊賬號 —> 添加移動應用 —> 等待審核 —> 審核通過后申請支付功能 —> 填寫企業資料 —> 再次等待審核(7日) —> 通過審核(郵件中含商戶號及登錄密碼) —> 驗證結算賬戶,在線簽署協議; - 項目中集成部分:
a、注冊APPID:
- web上創建應用部分:
final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);
msgApi.registerApp("wxd930ea5d5a258f4f");
b、讓用戶選擇商品,并選擇支付方式(微信),請求我們自己的服務器,生成訂單給微信平臺,并獲取到預訂單(包含prepayId),將prepayId傳回給我們的app;
c、app調起支付:
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(req);
4、支付結果回調:
在WXPayEntryActivity類中實現onResp函數得到支付結果,并判斷返回是否為錯誤碼,而如果支付成功則去后臺查詢支付結果再展示用戶實際支付結果。
publicvoidonResp(BaseRespresp){
if(resp.getType()==ConstantsAPI.COMMAND_PAY_BY_WX){
AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
builder.setTitle(R.string.app_tip);
}
}
回調中errCode值列表:
名稱 描述 解決方案
0 成功 展示成功頁面
-1 錯誤 可能的原因:簽名錯誤、未注冊APPID、項目設置APPID不正確、注冊的APPID與設置的不匹配、其他異常等。
-2 用戶取消 無需處理。發生場景:用戶不支付了,點擊取消,返回APP。
</br>
-
具體流程請參考:
微信支付app集成方法:
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5
微信支付后臺使用接口:
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1
-
需要注意的地方:
- 對于微信支付結果通知, 同樣的通知可能會多次發送給商戶系統。商戶系統必須能夠正確處理重復的通知。
- 另外商戶系統對于支付結果通知的內容一定要做簽名驗證,并校驗返回的訂單金額是否與商戶側的訂單金額一致,防止數據泄漏導致出現“假通知”,造成資金損失。
- 微信支付功能只在app端,依賴或導入支付SDK就可以了,服務端不需要SDK,只要后臺調用微信支付相關接口查詢即可,而支付寶支付卻需要雙方都要導入相應的SDK。
- 微信支付只能用于企業(只有商業版,并非自用型應用),但支付寶是可以實現自用型應用的。
- app對應的網上微信支付應用,不需要進行上線申請,而支付寶的網上應用是需要進行上線申請的。
- 微信需要配置應用簽名:d7a7a6a72b7627be785495b6b842dda8
支付寶需要配置密鑰(公鑰)
.