Android 接入微信支付

本文详细介绍了微信支付在Android端的集成步骤与注意事项,包括如何正确获取MD5签名、使用Gradle下载依赖、注册APPID、请求后台获取支付参数、实现支付回调等关键环节,以及在测试和正式环境中可能遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微信支付,Android端集成,不得不说,真的是没有支付宝接入的舒服。

首先,还是看官方提供的文档 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5

这里面会提供你一个可以查看自己MD5 签名 的工具app,但是,你以为能直接拿来用的吗,大概是在做梦了,这个app 获得的签名是小写的字母,小写的,而实际你要填写的是大写的MD5签名,不如你直接用命令行打开签名拿到你的签名值:
keytool -v -list -keystore testdemo.jks,然后replaceAll (“ :”,“”),不然你直接用工具里的签名,你会沉醉在 支付永远返回-1 的痛苦中。

对,我们先讲讲集成微信支付,集成微信支付:

如果你使用的Android studio, 可以直接使用gradle形式 直接下载依赖,

implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+'

可以在https://bintray.com/wechat-sdk-team/maven 下查询到最新的版本

比如

这里你就可以写

// 以下2个版本任选一个就好了
implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.1.6'

implementation 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:5.3.1'

随后你就可以开始写微信支付的代码了

第一步:注册你的微信 的APPID

final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);

// 将该app注册到微信 ,这里的appid 是你们申请微信审核成功后的微信给你们地方appid

msgApi.registerApp("你的appid");

第二步:请求你们的后台拿到你需要拉起微信的 值,这里我就直接赋值微信官方提供的ex了,
 

IWXAPI api;
PayReq request = new PayReq();
request.appId = "wxd930ea****258f4f";
request.partnerId = "1900000109";
request.prepayId= "1101000000140415649af9fc314aa427",;
request.packageValue = "Sign=WXPay";
request.nonceStr= "1101000000140429eb40476f8896f4c9";
request.timeStamp= "1398746574";
request.sign= "7FFECB600D7157C5AA49810D2D8F28BC2811827B";
api.sendReq(request);

第三步:写微信支付拉起后的回调:

WXPayEntryActivity extend acitivity implements IWXAPIEventHandler

重写 onResp() 方法

  @Override
    public void onResp(BaseResp resp) {

        if (resp.getType() == ConstantsAPI.COMMAND_PAY_BY_WX) {
            EventBus.getDefault().post(new PayEvent(resp.errCode));

//            ToastUtils.showShort(mContext, resp.errCode == 0 ? "支付成功" : "支付失败");
            finish();

        }
    }

我这里使用 的EventBus 通知页面消息,你也可以使用其他方法通知页面,这都没什么关系

这里的errorCode 只有 3种状态 0 - 成功, -1 支付失败(可能性很多,需要自己排查),-2,用户自己手动取消。

正常的微信支付就结束,但是,你你会不经意之间就发现微信支付的问题,,并且很难受,排查起来太困难,所以我不怎么喜欢微信,微信从随便发朋友圈,到要顾及到好友列表中的人,到要开始屏蔽好友,到要用微信进行工作交流,感觉微信越来越像qq 靠拢,越来越没意思了。

这里说几个微信接入需要注意的地方:

1:微信支付测试需要你正式生成app 签名过的那种, debug 版本 是拉不起 微信支付的

2:微信支付,拉起后你未登录微信的话,点击返回,你的activity 会在200ms内完成2次 onStart 的方法,这应该是Android直接打开栈顶的activity 了;

3:微信支付回掉是是 通过 Intent 拉起你的实现IWXAPIEventHandler 的activity,所以需要你  的WXPayEntryActivity必须在微信指定的包名下,也就是你提供给微信的包名.wxapi下;错了你就拉不起你的回掉,并且此activity 需要在 AndroidManifest中设置android:exported="true",保证微信有拉起你app 的权限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值