对于微信支付 - 我是这样做的

关于微信的准备工作:

1. 首先你需要打一个正式包, 然后再手机上安装;

2. 下载微信工具- GenSignature 去获取MD5签名   微信开放平台后台需要

3. 等待微信支付申请下来


开始接入微信支付:

1. 按照官方文档 接入微信支付需要的lib,配置文件等

2. 开始代码

 2.1 创建一个WxPAy.class 的类

        private IWXAPI mApi;
private String mAppId = "appId";//申请微信 提供


扫描二维码关注公众号,回复: 2630752 查看本文章

        /**
* 将app注册到微信
*/
public void registToWechat() {
mApi = WXAPIFactory.createWXAPI(this.mContext, mAppId, false);//暂未发现true和false的区别
mApi.registerApp(mAppId);
}


        /**
* 检查是否安装微信
*/
public void checkWXAppSupport() {
boolean isPaySupported = mApi.getWXAppSupportAPI() >= Build.PAY_SUPPORTED_SDK_INT;
if (!mApi.isWXAppInstalled()) {
Toast.makeText(mContext, "未安装微信", Toast.LENGTH_SHORT).show();
return;
}
if (!isPaySupported) {
Toast.makeText(mContext, "微信版本不支持支付功能,请升级微信到最新版本", Toast.LENGTH_SHORT).show();
return;
}
}


/**
 * 调起微信支付 (所需要的参数可以全部从后台获取)
 */

         public void reallPay(String appId, String partnerId, String prepayId, String packageValue, String nonceStr,String timeStamp, String sign) {
PayReq request = new PayReq();
request.appId = appId;
request.partnerId = partnerId;
request.prepayId = prepayId;
request.packageValue = packageValue;
request.nonceStr = nonceStr;
request.timeStamp = timeStamp;
request.sign = sign;
mApi.sendReq(request);
}


2.2 创建 WXPayEntryActivity 继承Activity

        private IWXAPI api;
private String appId = "appId";

        在OnCreate方法中写入:

api = WXAPIFactory.createWXAPI(this, appId);
api.registerApp(appId);

@Override
public void onResp(BaseResp resp) {
Log.d(TAG, "onPayFinish, errCode = " + resp.errCode);
String result = "";
if (String.valueOf(resp.errCode).equals("0")) {
result = "支付成功";
} else if (String.valueOf(resp.errCode).equals("-1")) {
result = "支付失败";
} else if (String.valueOf(resp.errCode).equals("-2")) {
result = "支付取消";
}

WXPayEntryActivity.this.finish();//关闭此Activity
}


至此,微信支付算是完成了,但是相信好多同学会遇到这样或者那样的问题:

1. 出现错误,一般是微信后台没有配置好,一定要仔仔细细的去检查(md5的签名,大小写是否正确)!!!

2. 确认提供的appid 和 secret 是否正确

3. 检查你的包名是否一致:   你的包名.wxapi    清单配置文件:  你的包名.wxapi.WXPayEntryActivity

4. 微信支付是需要正式包的(这是微信最坑爹的地方,没有之一)




       





 



猜你喜欢

转载自blog.csdn.net/andcisco/article/details/74011070