前言
这个必须写,心累啊。
因为项目需求,需要接通微信支付,微信支付接口感觉是真坑啊,特别是对于没有接过微信分享的人来说,能给坑的想骂娘!!!
好了现在我们来一步步扫坑
第一步
我们需要去微信开放平台注册申请,一个APP。这个一般不用我们去亲自申请,我们公司是当时项目经理申请的,我们只需要提供
包名:比如
签名:签名最好是微信提供的签名工具
在这呢
记住必须是先把APP打包安装到手机在用签名工具生成签名,且如果改微信开放平台的APP签名,记住必须要清空手机微信缓存不然会没效果的,亲自经历
第二步
这里弄好了我们就可以接支付了
温馨提示:如果之前集成了友盟分享,切记下载的时候下载这个
下载了完整版的就不需要再次下载微信的jar包了
如果需要微信官方的包可以去看文档,下面是个图片,这个是地址
然后微信很坑的地方就开始出现了:
需要在包名下建一个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的签名没问题那就是后台给的签名的事情喽!!!
坑坑坑!!!