Android集成微信支付
2016-07-05 16:23
483 查看
Android集成微信支付
项目中集成第三方支付的功能,基本是我们app中经常用到的功能。今天先给大家讲一下微信支付的集成过程,重点只说一下代码部分。 首先,你要到微信开发者平台注册账号,并创建你的应用,通过包名和签名拿到AppId和申请支付功能。 ![申请应用支付功能](https://img-blog.csdn.net/20160705154140753)
下面就是具体的代码部分
ps:微信支付并不需要再清单文件中添加什么配置信息,只需代码正确就可以。
初始化:先在页面初始化的地方,注册微信支付
api = WXAPIFactory.createWXAPI(this, null); // 将该app注册到微信 api.registerApp("您的appId");
在需要支付的地方,调用微信支付的方法:
IWXAPI api; PayReq request = new PayReq(); request.appId = "您的appId"; request.partnerId = "1900000109"; request.prepayId= "1101000000140415649af9fc314aa427",; request.packageValue = "Sign=WXPay"; request.nonceStr= "1101000000140429eb40476f8896f4c9"; request.timeStamp= "1398746574"; request.sign= "7FFECB600D7157C5AA49810D2D8F28BC2811827B"; api.sendReq(req);
appI 就是你平台注册应用申请的id,写死就可以
partnerid 商户号,服务器给你返回,或者你写死也可以
prepayid 预支付交易会话ID 也就是你的订单信息,这个肯定你们服务器返回的,没的商量
packageValue 扩展字段,可以按照文档上写死
noncestr 随机字段 服务器返回 你要自己写那就按照文档上的算法自己来写吧
timeStamp 时间戳 也是服务器给你返回
sign 签名 服务器返回 自己写有点麻烦
好了到这里,只要你的这些参数全部正确,你就可以正确的调起微信支付!
支付是否成功,肯定要给用户反馈一个结果,那就要根据微信给你的回调,来反馈给用户结果。
在你项目全包名下,新建wxapi包,然后WXPayEntryActivity类(包名或类名不一致会造成无法回调);在类中实现onResp函数。
@Override public void onResp(BaseResp resp) { switch (resp.errCode) { case 0: Toast.makeText(getApplicationContext(), "支付成功", Toast.LENGTH_LONG).show(); break; case -1: Toast.makeText(getApplicationContext(), "支付失败", Toast.LENGTH_LONG).show(); break; case -2: Toast.makeText(getApplicationContext(), "取消订单", Toast.LENGTH_LONG).show(); break; default: break; } }
一定不要忘记,将activity注册到清单文件中
<!-- 微信分享回调 --> <activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
到这里就是微信文档的全部了,但是,坑就在这里了,到这还没有完,文档标注我们还需要注册广播接收者,来接受微信的回调,在清单文件中,注册一下,但清单文件中如果添加了,项目可能会崩溃,所有不要注册
<!-- 支付回调接收者 --> <receiver android:name=".AppRegister" > <intent-filter> <action android:name="com.tencent.mm.plugin.openapi.Intent.ACTION_REFRESH_WXAPP" /> </intent-filter> </receiver>
OK!到这,基本就是微信支付的全部集成。
PS:集成完测试的时候,记得一定要打包以后测试支付功能,不进行打包的话,微信支付,还有微信分享都会出现调不出微信的情况!而且注册时候的签名,也是需要你打包以后,获取的应用签名!
相关文章推荐
- 微信支付和微信第三方登录的冲突问题
- 微信JS SDK Demo
- 微信支付app支付服务器端(Java)
- 微信支付之扫码支付相关代码(Java)
- 微信公众平台php开发包
- PHP开发微信支付代码及支付通知处理
- 微信开发一:本地环境部署及调试
- Fuhome如何用手机微信远程控制继电器,手机控制单片机设备,硬件不限,其实都一样的
- 微信开发
- 花生壳动态域名软件功能、服务有哪些?
- Android 直接打开微信,微博,QQ
- 微信支付原总经理吴毅:离开腾讯,如何再战蚂蚁金服?
- 微信 支付异步回调 获取参数值
- 微信签名生成算法
- PHP微信开发入门(一)
- 一个很赞的ecshop微信商城系统!
- 微信支付 h5
- 微信支付那些事
- 感觉今天一天没做什么事情啊QAQ,学习了一下java的基本语法,编写了几个小程序,还是总结一下吧
- 通过new Scanner(System.in)创建一个Scanner,命令行输出