一、获取签名
在微信支付开发平台获取应用签名,如图:
二、导入微信支付包,记得添加网络权限
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="";
}
}
到此为止 微信支付成功!你成功了吗?
微信支付集成指南

1113

被折叠的 条评论
为什么被折叠?



