安卓集成微信支付可能存在的坑

        小生安卓开发已有三年时间了,其间集成各种第三方框架也有不少,其中感觉坑最多最容易犯错的就是微信支付的集成了。前不久已经是第三次集成微信支付,还是不小心掉进了坑里,一天时间才排查出问题。所以现在特地总结以前集成遇到的坑,希望能对大家有所帮助。

1.首先集成微信支付,应该先申请资质账号,然后拿到APPID,这个步骤就不谈了,应该是公司来提供,中间一个需要提一下的是,安卓申请的时候需要的签名,这个不是你打包用的签名的名字,也不是有人说的签名的指纹什么的,还是应该下载一个微信官方的工具,来获取你应用的签名。

将打好的apk和这个工具装到手机里,工具里填写你apk的包名,得到的就是相应的签名了。工具下载地址:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5

2.调用微信支付的时候,应该先进行注册。

final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);
// 将该app注册到微信
msgApi.registerApp("wxd930ea5d5a258f4f");

然后添加你从后台获取的字段信息,进行微信支付的调用

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

注意注意注意啦!!这是微信官方给出的调用代码,这里面总共添加了7个字段,但是小生在调用支付的时候,并不能将支付申请发送出去。最后发现,微信官方文档写7个字段,而官方的demo里面却是8个字段。注意注意了,是8个字段,这里面少了一个字段,应该添加上
request.extData= "app data";


这个字段,小生就是添加上这个字段之后一通百通的。可见官方文档也不是完全正确啊。

3.重点就是第二点啦,网上没有人说,所以小生想提一下。别的就是大家经常遇到的了,比如回调的类命名以及存放的位置之类的,这些注意点到处都是,小生就不一一赘述啦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值