支付几乎是每个APP都会有的功能,今天我们就来说一下微信支付这块
直接上集成的流程
1.微信开放平台注册开发者账号(需要300大洋)https://open.weixin.qq.com/
2.创建一个应用,填写对应的包名和签名。
3.审核通过后,申请开通微信支付的接口(好了,接下来就是慢慢的等待腾讯审核通过)
4.添加依赖 compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
5.好了, 接下来是怎么调起微信支付。我们先来看一下界面
6.响应点击事件,调起微信支付的页面
mrechargePresenter.RechargeWechat("1110f83c48545a652f666c1bd6b25117",rmbAmount);
关键代码就这一句,当点击具体某一个item的时候,我们这里传了两个参数给后台。第一个是一个token,因为我这里只是测试,所以我把数据写死了,第二个参数就是item上面的金额,具体的参数需要根据你的项目的需求来定。
7.请求了接口后,后台会返回一些参数给我们。我们需要拿到这些参数,再做逻辑处理
//微信支付
public void RechargeWechat(String token,String num){
getUiInterface().showLoadingDialog();
Subscription sub=mretrefitManger.RechargeWechat(token,num)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BaseObserver<BaseResponse<WxpayInfo>>(getUiInterface()) {
@Override
public void onSuccess(BaseResponse<WxpayInfo> response) {
//调起微信支付
PayReq req=new PayReq();//下面的七个数据都需要后台传给我们
req.appId=response.getData().getAppid();
req.partnerId=response.getData().getPartnerid();
req.prepayId=response.getData().getPrepayid();
req.nonceStr=response.getData().getNoncestr();
req.timeStamp=response.getData().getTimestamp();
req.packageValue=response.getData().getPackagee();
req.sign=response.getData().getSign();
msgApi.registerApp(Url.WX_APPID);// 将该app注册到微信(这里需要填写开放平台的appid)
msgApi.sendReq(req);
}
@Override
public void onError(Throwable throwable) {
super.onError(throwable);
getUiInterface().dismissLoadingDialog();
}
});
addSubscription(sub);
}
8、好了我们来看一下成功吊起的支付页面