Android第三方支付——微信支付
来源:互联网 发布:redis排序 java 编辑:程序博客网 时间:2024/05/16 08:53
Android第三方支付——微信支付
目录
- Android第三方支付微信支付
- 微信平台注册应用
- 支付流程图
- 注册appId
- 调起支付
- 支付结果回调
- 注意事项
- Android第三方支付微信支付
之前一直说要坚持写一个技术博客,但是人都有惰性,说是那么说了,就是不见行动。今天终于觉悟了,痛改前非,于是产生了这篇文章。
1.微信平台注册应用
详细见开发文档
应用包名:是在APP项目配置文件AndroidManifest.xml中声明的package值。
应用签名:根据项目的应用包名和编译使用的keystore,可由签名工具生成一个32位的md5串,在调试的手机上安装签名工具后,运行可生成应用签名串。签名工具下载地址,注册应用必须使用应用包名和正式应用签名,其正确性必须由开发者保证。
2.支付流程图
3.注册appId
APP引入微信JAR包,调用API前,需要先向微信注册自己APP的appid,代码如下:
IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);// 将该app注册到微信msgApi.registerApp("自己应用的appId");
4.调起支付
后台生成支付订单,先调用统一下单API生成预付单,获取到prepay_id后将参数再次签名传输给APP发起支付。以下是调起微信支付的关键代码:
IWXAPI api;if(!api.isWXAppInstalled()) { Toast.makeText(context,"请安装微信客户端",Toast.LENGTH_SHORT).show();}
public void pay() { IWXAPI api; // 去后台请求订单信息payInfo WXPayInfo payInfo = new WXPayInfo(); PayReq request = new PayReq(); request.appId = payInfo.getAppId(); request.partnerId = payInfo.getPartnerId(); request.prepayId= payInfo.getPartnerId(); request.packageValue = payInfo.getPackageValue(); request.nonceStr= payInfo.getNonceStr(); request.timeStamp= payInfo.getTimeStamp(); request.sign= payInfo.getSign(); api.sendReq(req);}
5.支付结果回调
publicvoidonResp(BaseRespresp){ if(resp.getType()==ConstantsAPI.COMMAND_PAY_BY_WX){ Log.d(TAG,"onPayFinish,errCode="+resp.errCode); swich(resp.errCode) { case 0: //支付成功 break; case -1: //支付失败 break; case -2: //支付取消 break; } }}
微信支付回调WXPayEntryActivity类必须写在项目名下一级目录wxapi包中,其中支付回调-1(支付失败)结果可能出现的原因如下:
- 签名错误
- 未注册appid到微信平台
- 项目中设置的appid错误
- 注册的appid与设置的appid不同
6.注意事项
- 支付失败大多数是签名错误导致。
- 回调的WXPayEntryActivity的位置未写正确,或者未注册该activity。
- 如果微信支付是在library中实现的,WXPayEntryActivity的位置还必须是项目名一级目录下wxapi包中,否则回调不到。
- 打包的apk签名信息与微信平台注册时不同,将签名文件重新生成一下。
- 后台获取订单信息后再次签名参数时严格区分参数大小写问题(开发中后台返回没有按微信平台要求,导致我花了大半天时间查询问题所在,感受如何你们懂得。。。。。。)
0 0
- Android第三方支付——微信支付
- Android第三方支付--微信支付
- Android 支付宝支付、微信支付、银联支付 整合第三方支付接入方法
- Android第三方实现微信支付
- Android开发中第三方支付支付宝、微信
- 第三方支付之微信支付
- 第三方支付之微信支付
- Android第三方支付——支付宝APP支付
- 第三方支付之微信支付(扫码支付)
- <android> 第三方支付sdk接入 支付宝、微信支付
- Android第三方支付——Bmob支付总结
- Android第三方支付——银联支付
- Android第三方sdk加入App微信支付解决方案
- 微信第三方登录和支付
- 接入第三方SDK-微信支付
- Android 支付宝支付、微信支付、银联支付 整合第三方支付接入方法(后台订单支付API设计)
- iOS第三方支付-微信支付
- iOS第三方支付-微信支付
- 高精度乘法
- 排队买票-SSL 1464
- 伪类和伪元素
- SpringMVC 自动绑定数据
- Win7,64位,Python使用reportlab画图并生成为pdf文件
- Android第三方支付——微信支付
- C实现折半插入排序
- Linux crontab定时执行任务 命令格式与详细例子
- request的请求转发和response请求重定向
- 在结构体中实现元素固定长度定义
- 二叉树遍历、高度与节点数
- 邮票
- 在word写论文时候关于参考文献的引用
- 数字三角形(顺推2维,逆推,顺推1维)