1、注冊微信開放平台賬號--》創建應用--》申請開通支付功能
鏈接:https://open.weixin.qq.com/
2、下載微信支付Demo
鏈接:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=11_1
3、App內嵌入微信支付
a、注冊App到微信:
api = WXAPIFactory.createWXAPI(this, WeixinHelper.APP_ID); // App_ID在創建應用成功之后,在微信開放平台獲取
api.registerApp(WeixinHelper.APP_ID);
b、Androidmenifest中配置微信回調Activity:
.wxapi.WXEntryActivity、.wxapi.WXPayEntryActivity // 前綴為App包名,前面兩個必須一樣,而且必須實現接口:IWXAPIEventHandler
具體的參考微信demo
c、向后台發送統一支付請求:
后台收到請求向微信發送統一支付請求,並且獲取預支付id prepayid;
然后將結果返回給客戶端
具體需要的參數參考鏈接:
https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=9_12&index=2
d、解析返回的參數,封裝到PayReq對象,使用api發送請求
api.sendReq(req);
返回的參數一一設置到PayReq中,其中sign參數必須采用如下方式生成:
安全簽名算法:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=4_3
另外req.packageValue = "Sign=WXPay"; 這個參數可以寫死,不適用服務器返回的
e、各種權限權限,直接從demo拷貝就可以了
參考鏈接
1、http://blog.csdn.net/jdsjlzx/article/details/47422279
2、http://www.mamicode.com/info-detail-862201.html
上面的兩個例子,簽名都是在客戶端做的,其實這部分最好在服務器做,客戶端直接使用就行了;原因是這里需要使用到支付的秘鑰,也就是簽名算法中需要用到的Key值,不適合在客戶端暴露出去。