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方法中,可根据需求更改支付结果显示。

相关