【android】手把手轻松集成微信支付

一、获取签名

在微信支付开发平台获取应用签名,如图:


二、导入微信支付包,记得添加网络权限

compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.1.6'
 
三、下载微信平台的快速dome 拷贝里面的wxapi.WXEntryActivity 和wxapi.WXPayEntryActivity 放在wxapi文件夹下   
	(注意:wxapi一定要放到你项目的包下面  放别的里面会导致调用不起微信支付la)
 
    
 
三、在AndroidManifest.xml中添加以下代码  //微信支付返回的类文件
  <activity
            android:name=".wxapi.WXEntryActivity"
            android:exported="true"
            android:label="@string/app_name"
            android:launchMode="singleTop">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.DEFAULT" />

                <data android:scheme="wx02dc122167633c95" />
            </intent-filter>
        </activity>
        <activity
            android:name=".wxapi.WXPayEntryActivity"
            android:exported="true"
            android:launchMode="singleTop" />
 
 
四、调用支付。
	1.使用网络框架进行后台请求数据如:
		 NetUtils.getInstance().postMonth(PaymeijiaActivity.this, Constant.APARTPAY, NetUtils.getPay(startime, endtime, room_id, "alipay", allmoney, "1"), mHandler, Constant.THREE);
		得到类似一下数据  
 /**
 * appid : wx02dc122167633c95
 * noncestr : weZzMZFU4OE4SobT
 * package : Sign=WXPay
 * partnerid : 1449961302
 * prepayid : wx20170602171524cb73ac72770999450203
 * timestamp : 1496394924
 * sign : A772AFA558E8A0B2FD8460FD632D42E7
 */
	2.解析数据调用支付
             weixinBean = new Gson().fromJson(msg.obj.toString(), WeixinBean.class);
                    Runnable payWXRunnable = new Runnable() {
                        @Override
                        public void run() {
                            PayReq request = new PayReq();
                            request.appId = weixinBean.getAppid();
                            request.partnerId = weixinBean.getPartnerid();
                            request.prepayId = weixinBean.getPrepayid();
                            request.packageValue = weixinBean.getPackageX();
                            request.nonceStr = weixinBean.getNoncestr();
                            request.timeStamp = String.valueOf(weixinBean.getTimestamp());
                            request.sign = weixinBean.getSign();
                            msgApi.sendReq(request);
                        }
                    };
                    // 必须异步调用
                    Thread payThreadwx = new Thread(payWXRunnable);
                    payThreadwx.start();
                    tvpaysubmit.setClickable(true);
 
	3. 在WXPayEntryActivity中可以进行支付返回的UI操作
	onResp(BaseResp resp)方法返回支付结果
		
	@Override
	public void onResp(BaseResp resp) {
		if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
			if(resp.errCode == 0){
				Toast.makeText(WXPayEntryActivity.this, "支付成功", Toast.LENGTH_SHORT).show();
				tv_pay_state.setText("支付成功");
				tv_pay_content.setText("您已成功支付"+payMoney+"元");
				
			}else if(resp.errCode == -2){
				Toast.makeText(WXPayEntryActivity.this, "用户取消", Toast.LENGTH_SHORT).show();
//				tv_pay_state.setText("支付失败");
//				tv_pay_content.setText("您已支付失败,请稍后重试");
//				
				finish();
			}else if(resp.errCode == -1){
				L.e(resp.errStr+"............."+resp.transaction);
				Toast.makeText(WXPayEntryActivity.this, "支付失败", Toast.LENGTH_SHORT).show();
				tv_pay_state.setText("支付失败");
				tv_pay_content.setText("您已支付失败,请稍后重试");
				
			}else {
				
			}
			payMoney="";
		}
	}
 
	到此为止  微信支付成功!你成功了吗?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值