前言:微信用户越来越庞大,微信支付已经慢慢成为人们购买东西时,不可缺少的一个环节。本文是由ywl5320授权本公众号独家发布,ywl5320的blog链接:http://blog.csdn.net/ywl5320/。话不多说,看正文

最近在做支付模块,最常用的就是微信支付和支付宝支付,其中最坑的就是微信支付了!!各种问题,官方文档也写得不详细。。。哎 不过最后还是成功的爬坑完成集成了微信支付。先附上一张支付成功的页面高兴高兴 哈哈哈:

下面就是爬坑过程

微信支付分为以下几个步骤:

1、首先要在微信开放平台注册,添加自己的APP并成功申请支付功能

2、下载微信支付的SDK并添加到自己的项目里(以上都是最基本的,问题不大)

3、现在就可以着手集成微信支付了(从下单到支付):

(1):准备好需要的资料数据,并向微信注册当前APP

首先要在微信后台配置当前APP打包key所生成的签名(微信官网有签名工具),然后还必须设置商户的key(32位,商户自己设置的),然后就是APP_ID这个是微信为每一个APP生成的,最后就是开通了支付功能的商户的ID用户我们把钱支付给商家。

然后在适当的地方注册APP(oncreate中)

(2):调用统一下单接口(https://api.mch.weixin.qq.com/pay/unifiedorder)生成订单,这一步是最容易出错的(此乃大坑)。

1、首先我们设计好所要传给微信的必要参数(OrderPayBean):

例如以下商品数据:

2、商品参数准备好了,接下来我们为之生成签名:

签名算法如下:


构造商品参数集合:

3、因为统一下单接口需要以xml格式post发送给微信,所以我们先拼接xml格式的参数:

然后是我们的异步线程请求统一下单接口:

这里从微信返回来的正确的结果为:xml格式的字符串,里面的“prepay_id”就是我们需要用在调取支付界面所要的重要参数。其中的Util.httpPost(url, str)方法可以在微信提供的demo中拷贝过来就行。(在这一步很多时候都返回的是“签名错误”,就要检查商户key是否正确,最常见的错误就是“body”字段是中文,然后post发送的时候没有转换为“iso8859-1”编码,导致签名错误。

4、通过统一下单接口成功获取到了“prepay_id”后,就可以调取支付接口了(如果是服务器生成订单,可以直接从这一步开始):

使用到的工具类方法:

其中:

这里用到了把xml转换为list的方法(用的是dom4j.jar):

5、这样就成功的调到了支付界面

这是刚开始解决中文乱码是,单独对中文转码后的结果,微信端没有转码,就成这样了。

这是body是英文的时候,能正常支付。

6、最后在微信回调页面处理支付结果:


这样微信支付爬坑结束,不容易啊。。。 哈哈哈

第一时间获得博客更新提醒,以及更多android干货,源码分析,欢迎关注我的微信公众号,扫一扫下方二维码或者长按识别二维码,即可关注。

Android微信支付爬坑相关推荐

  1. RTFM:腾讯微信公众号H5页面使用微信支付爬坑记

    一. 微信公众号支付的流程 公众号的页面会在微信环境下打开,所以默认已经有登录态.openID.AppID.AppSecret 都能拿到,申请开通商家支付之后会有 PayKey 和 mch_id (商 ...

  2. Android微信支付遇到的坑

    文章是转载的,,因为看了这文章后感觉跟自己搞微信支付的过程很像,所以转下来收藏下相当于自己的经历 原文:http://www.bubuko.com/infodetail-1020413.html 今天 ...

  3. Android 微信支付总结

    由于公司运营需要,Android客户端要增加微信支付.在看了几遍官方文档之后,加上之前有集成微信分享的经验,所以很快就把调用微信支付的代码写好了,待微信支付相关接口完成后联调时,才发现山高路远坑深啊! ...

  4. android+微信支付

    微信支付 目录 微信支付 1 一. 创建应用 2 二. 支付集成 5 1.body字段格式 8 三. 参考网址 12 四. Android Studio的两种模式及签名配置 12 一. 创建应用 1& ...

  5. android微信支付问题总结

    首先我们先看一个android微信支付时遇到的一个错误提示: onPayFinish, errCode = -1 当你参数签名都没有问题的时候,出现这个提示,请按照如下操作: 在你的项目测试andro ...

  6. android 微信支付接口申请分享

    开头不那么多废话直接给大家上过程:1.进入微信开发平台 连接 [微信开发平台](https://open.weixin.qq.com/) 登陆帐号然后选择移动应用接入. 进去进行创建应用,创建的时候要 ...

  7. android 微信支付问题总结

    首先我们先看一个Android微信支付时遇到的一个错误提示: onPayFinish, errCode = -1 当你参数签名都没有问题的时候,出现这个提示,请按照如下操作: 在你的项目测试andro ...

  8. android微信支付(问题总结)

    android微信支付(问题总结) 2015-08-11 16:26 7541人阅读 评论(7) 收藏 举报 分类: Android开发(1457) 作者同类文章 X 感谢博主的分享:http://b ...

  9. 加入域时出现以下错误 登陆失败 该目标账户名称不正确_微信支付踩坑合集:微信小程序支付失败是什么原因?持续更新...

    微信小程序开发的过程一定会遇到各种问题,最让人棘手的就是支付问题,因为没有支付做商城类似的小程序就没有办法完成最关键的一步.那么支付失败到底什么原因呢?一下子收集了几个错误类似,希望对你有帮助: No ...

  10. android微信支付代码,详解android微信支付实例代码

    这篇文章主要为大家详细介绍了http://www.php.cn/wiki/1502.html" target="_blank">android微信支付源码,具有一定 ...

最新文章

  1. 用html编写ASCII表,[html_css]ASCII编码表
  2. android四大组件 简书,android四大组件
  3. (转)HttpURLConnection与 HttpClient 区别
  4. ubuntu 20.04 下安装使用clash for windows
  5. java中生成pdf文件,java 中生成pdf 文件
  6. 以太坊 solidity return 返回值写法 3种格式
  7. SQLite3 数据库全文搜索 - SQL Server - 红黑联盟
  8. 米勒拉宾算法——素性测试
  9. 送书 | 教你爬取电影天堂数据
  10. Windows10息屏快的问题解决办法(在更改屏幕和睡眠时间无效的情况下)
  11. html的国际标准智商测试,iq测试题国际标准30道 国际标准IQ测试多少分合格
  12. chrome浏览器安装redux-devtools调试工具
  13. vue父组件中调用子组件中的方法 及vue父组件调用孙子组件的方法
  14. 《西西弗神话》读后感
  15. 基于NS模型+久期衡量利率风险(Julia)
  16. 软件测试工程师-职业规划发展
  17. 电源系统分析之电源综合分析
  18. 与Servlet斗智斗勇
  19. idea的英文翻译插件安装(Translation)
  20. EXC_BAD_ACCESS iphone

热门文章

  1. python判断文件或文件夹是否存在
  2. SSD——样本正负比控制+多尺度检测 (目标检测)(one-stage)(深度学习)(ECCV 2016)
  3. poj2828 Buy Tickets
  4. Cassandra安装和初次使用
  5. word2007里插入分节符
  6. 一个用户在同一时间只能登录一次
  7. Silverlight实例开发 简单的拖拽效果
  8. [EntLib]UAB(Updater Application Block)下载
  9. GARFIELD@10-21-2004
  10. Linux环境编程之文件I/O(二):文件的打开与关闭