一 (准备1)公司官方注册微信开放平台账号 https://open.weixin.qq.com/
开发者第一点注意公司是否已申请微信开放平台账号( 微信目前只支持公司账号申请支付,暂不支持个人开发者支付申请),没有则协调沟通申请即可.
二 (准备2)登录[微信开放平台]创建移动应用
登录账号后,点击上面菜单栏 [管理中心] – [移动应用]–[创建应用],创建应用三个步骤按提示填入(审核后这部分资料可修改),微信会在7天内完成审核.记录好AppID与AppSecret后面使用即可.
完善创建应用时候的配置,包名签名之类的,找相应移动开发要即可
三 微信支付接入代码
1.在app的build.gradle文件中,添加如下依赖:
dependencies {
api'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.3.1'
}
2.在注册清单AndroidManifest.xml中添加权限与WXPayEntryActivity,AppRegister
3.调起原生微信支付:把服务器返回的数据,字典封装并提交给微信即可mWxApi.sendReq(req);(此处服务端返回的数据交给接口开发大佬返回即可,取数据的方式仅供参考,也可以自己写)
try {
IWXAPI api = WXAPIFactory.createWXAPI(webLoader.getPageControl().getContext(), Constants.APP_ID);
boolean isPaySupported = api.getWXAppSupportAPI() >= Build.PAY_SUPPORTED_SDK_INT;
if (!isPaySupported) {
Log.i("kkk", "该手机不支持微信支付!");
} else {
PayReq req = new PayReq();
req.appId = Constants.APP_ID;
req.partnerId = param.getString("partnerid");
req.prepayId = param.getString("prepayid");
req.nonceStr = param.getString("noncestr");
req.timeStamp = param.getString("timestamp");
req.packageValue = param.getString("package");
req.sign = param.getString("sign");
req.extData = "app data"; // optional
// 在支付之前,如果应用没有注册到微信,应该先调用IWXMsg.registerApp将应用注册到微信
api.sendReq(req);
}
} catch (Exception e) {
e.printStackTrace();
}
4.支付成功:在WXPayEntryActivity页面接收微信支付结果回调,做自己相应需求即可
@Override
public void onResp(BaseResp baseResp) {
if (baseResp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
switch (baseResp.errCode) {
case 0:
SX_EJSAPI.call.applySuccess();
finish();
break;
case -1:
SX_EJSAPI.call.applyFail("支付取消");
finish();
break;
case -2:
SX_EJSAPI.call.applyFail("请求失败");
finish();
break;
}
finish();
}
}
四 支付调用不起来的排查点
1.检查微信开放平台上的APP_ID与代码一致
2.检查安卓包名,签名配置或者ios Bundle ID配置与代码要保持一致
3.一般正常检查上面的2个步骤,即可成功调起微信支付,如果errCode还是返回-1,找服务端接口开发大佬检查接口返回的数据是否正确
4.上面3步还检查都没问题,微信支付errCode还是返回-1,可以考虑清除微信的缓存尝试(个人理解微信把包名和签名存储起来了,后面不更新,导致切换签名或者包名后,不能正常覆盖,而最终不能调起支付)
五 相关参考链接
https://blog.csdn.net/qxing123456789/article/details/82461472#__150
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/Android.html
https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5
如有不到位之处,大家可以留言