关于Android集成微信支付的那些事儿

前言

这个必须写,心累啊。

因为项目需求,需要接通微信支付,微信支付接口感觉是真坑啊,特别是对于没有接过微信分享的人来说,能给坑的想骂娘!!!

好了现在我们来一步步扫坑

第一步

我们需要去微信开放平台注册申请,一个APP。这个一般不用我们去亲自申请,我们公司是当时项目经理申请的,我们只需要提供

包名:比如

心中无码,自然清

签名:签名最好是微信提供的签名工具

在这呢

微信官方签名工具

记住必须是先把APP打包安装到手机在用签名工具生成签名,且如果改微信开放平台的APP签名,记住必须要清空手机微信缓存不然会没效果的,亲自经历

第二步

这里弄好了我们就可以接支付了

温馨提示:如果之前集成了友盟分享,切记下载的时候下载这个


友盟集成微信需要注意的地方


下载了完整版的就不需要再次下载微信的jar包了

如果需要微信官方的包可以去看文档,下面是个图片,这个是地址

微信SDK


我就是个图片!还不高清

然后微信很坑的地方就开始出现了:

需要在包名下建一个wxapi的包还要在该包名下建一个WXPayEntryActivity的类,这个类实现IWXAPIEventHandler接口的public void onReq(BaseReq req)方法

切记不要把类名和包名写错了

心中无码,自然清

然后需要mannifest里面注册WXPayEntryActivity这个activity

比如:


我是图片

记得要把包名写完整了,不然回调不起来

第三步

1.商户APP工程中引入微信JAR包,调用API前,需要先向微信注册您的APPID,代码如下:

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

// 将该app注册到微信

msgApi.registerApp("wxd930ea5d5a258f4f");

开始喽

IWXAPI api=WXAPIFactory.createWXAPI(context, null);

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);

下面是参数说明


我是图片

到这地方就基本完成了

但是还会有些坑,特别是返回-1

只要APPID设置的没问题,APP的签名没问题那就是后台给的签名的事情喽!!!

坑坑坑!!!

推荐阅读更多精彩内容