APP接入微信支付(二)-- APP客户端集成
本文问主要介绍接入微信支付中客户端的代码集成过程,运用的工具为AS(Android Studio)。(官网说明文档)
一、导入SDK:
(1) 找到项目代码中app文件夹下的build.gradle文件。
(2) 在dependencies下添加依赖
dependencies{
......
//微信
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
......
}
添加完之后点击编辑器窗口右侧的Sync Now,当AS下方提示完成时,表示微信资源导入完成。若加载错误,将依赖语句换成implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
二、 添加权限
在应用项目代码中main文件夹下的AndroidManifest.xml文件中,在manifest下添加权限
......
......
三、 声明WXPayEntryActivity
同样在AndroidManifest.xml文件中,在application下添加声明
......
......
四、 调用支付接口
(1) 微信注册。在调用微信支付的Activity中先声明全局变量private IWXAPI msgApi;
,在onCreate方法中添加
//初始化操作 微信注册
msgApi = WXAPIFactory.createWXAPI(this, WeiXinConstants.APP_ID,true);
msgApi.registerApp(WeiXinConstants.APP_ID);
其中的类IWXAPI和WeiXinConstants在一个文件夹下。wxapi文件夹的位置必须与声明的一样,在包路径下的根目录(下载)。更换类WeiXinConstants中的APP_ID(微信开放平台上应用的APPID)。
(2) 设置一个点击事件,表示启用微信支付。事件中调用服务端的接口,参数为支付金额、产品描述等信息,返回值为订单信息。
(3) 将从服务端返回的订单信息作为参数,调用如下方法:
//微信 调起支付
PayReq request = new PayReq();
request.appId = WeiXinConstants.APP_ID;//应用ID
request.partnerId = "";//商户号
request.prepayId = "";//预支付交易会话ID
request.packageValue ="Sign=WXPay" ;
request.nonceStr = "";//随机字符串
request.timeStamp = "";//时间戳
request.sign = "";//签名
msgApi.sendReq(request);
其中的参数partnerId、prepayId、nonceStr、timeStamp、sign 是从服务端获取的参数。
支付结果在WXPayEntryActivity的onResp方法中,可根据需求更改支付结果显示。