微信支付集成过程

本文详细介绍了在Android应用中集成微信支付的过程,包括获取AppId、集成SDK、添加权限、注册微信、处理回调及请求服务器获取支付参数等步骤,并强调了微信支付的一些关键注意事项,如签名一致性、打包后调起支付以及应用审核状态的要求。
一、获取AppId
      需要到微信开放者平台( https://open.weixin.qq.com/)创建自己的应用,通过审核后,获取AppId。
二、集成微信支付的sdk
     在Android Studio 环境中:
       1>  在build.gradle文件中,添加如下依赖即可:
    
dependencies { // 包含统计功能
    compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'
}
或者:
dependencies {
    compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
}

  2>直接在lib文件夹下添加libammsdk.jar包。
三、在AndroidManifest.xml中添加权限

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

四、注册微信
要使App调微信后微信终端能响应自己的App,需要现在代码中向微信终端注册自己的id:
IWXAPI api = WXAPIFactory.createWXAPI(this, APP_ID, true);
api.registerApp(APP_ID);
五、微信请求回调
在AndroidManifest.xml 中package="com.exe.text" , 创建包名"com.exe.text.wxapi",并在这个包下创建回调类 WXPayEntryActivity并注册:
   首先在onCreate(Bundle savedInstanceState) 和 onNewIntent(Intent intent)中调用IWXAPI.handleIntent(intent , context);
         其次:
 @Override
    public void onResp(BaseResp resp) {
        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            if (resp.errCode == 0) {
                ToastUtils.showShort(UIUtils.getStringResource(this, R.string.pay_success));
                this.finish();
            } else if (resp.errCode == -1) {
                ToastUtils.showShort(UIUtils.getStringResource(this, R.string.system_abnormal));
                this.finish();
            } else if (resp.errCode == -2) {
                ToastUtils.showShort(UIUtils.getStringResource(this, R.string.user_dismiss_pay));
                this.finish();
            }
        } else {
            Toast.makeText(this, resp.errStr, Toast.LENGTH_LONG).show();
        }
    }
六、请求服务器获取微信支付的相关参数
请求自己的服务端获取微信支付需要的相关参数:
    PayReq payReq = new PayReq();
                payReq.appId = result.getAppId();//创建的应用的AppId
                payReq.partnerId = KeyConfig.MCH_ID; // 商户号
                payReq.prepayId = result.getPrepay_id(); // 预支付交易会话ID
                payReq.packageValue = result.getPackageX(); //扩展字段
                payReq.nonceStr = result.getNonceStr(); //随机字符串
                payReq.timeStamp = result.getTimeStamp();//
                payReq.sign = result.getSign(); //签名
                api.sendReq(payReq);
七、微信支付的的注意点
1、微信开发平台创建的App的签名必须和打包后签名一致;
2、微信支付必须打包后才能调起;
3、微信开发平台创建应用审核通过后,可以修改应用的签名。


 
  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值