项目集成微信支付,折腾了三天左右,坑太多,做个简单记录

开通和主要原理不再讲了,参考微信支付官网

截个官网的业务流程图,下面好说明

1 支付结果回调(图中的17步)

支付结果回调,微信官方的说法是:

在net.sourceforge.simcpux.wxapi包路径中实现WXPayEntryActivity类(包名或类名不一致会造成无法回调),在WXPayEntryActivity类中实现onResp函数,支付完成后,微信APP会返回到商户APP并回调onResp函数,开发者需要在该函数中接收通知,判断返回错误码,如果支付成功则去后台查询支付结果再展示用户实际支付结果。注意一定不能以客户端返回作为用户支付的结果,应以服务器端的接收的支付通知或查询API返回的结果为准。

(1) 其实正确地写法是appPackageName.wxapi. WXPayEntryActivity(如:com.example.app.wxapi. WXPayEntryActivity),而且类名必须是这个名字,要不不能回调(这个问题好网上遇到的人很多)。
(2) 还有一个问题,, AndroidManifest.xml配置文件中配置WXPayEntryActivity类时,要加上android:exported=”true”这个标签,不然也回调不到,这个坑了我一个多小时;

2 android端请求签名(图中第9步)

微信官网的说法是:

签名生成的通用步骤如下:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
特别注意以下重要规则:
◆ 参数名ASCII码从小到大排序(字典序);
◆ 如果参数的值为空不参与签名;
◆ 参数名区分大小写;
◆ 验证调用返回或微信主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
◆ 微信接口可能增加字段,验证签名时必须支持增加的扩展字段
第二步,在stringA最后拼接上key得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。

通俗的说,请求的参数做签名, appid,noncestr ,package,partnerid,prepayid,timestamp 按这个顺序(注意必须是小写),键值对的格式(即key1=value1&key2=value2…)做签名。

3 支付结果返回-1(图中的17步)

微信官网的说明是:

开放平台配置的包名和应用签名是否一致:(android);确认是否使用正式的keystore打包apk并安装调试;(android);提交订单部分需要在服务器端完成。

(1)应用签名问题:
微信开发平台申请开发应用时:
填写Android平台的应用签名时,需要注意,填写的是keystore的MD5值,不是SHA1值。注意开发时的debug.keystore和最终发布的签名keystore的MD5,SHA1都是不一样的。正式发布产品需要使用正式的签名。
另外特别注意:md5值得填写全是小写,并且不能包含冒号。
(2)注册app到微信
除过微信开发Demo里面的注册,在每次向微信服务器请求数据之前再注册一次

 wxApi.registerApp(Constants.APP_ID); //发送请求数据之前再注册一次wxApi.sendReq(req);

Android集成微信支付之-天坑相关推荐

  1. android微信迁移数据,【CSDN博客迁移】Android集成微信支付之-天坑

    项目集成微信支付,折腾了三天左右,坑太多,做个简单记录 开通和主要原理不再讲了,参考微信支付官网 截个官网的业务流程图,下面好说明 微信支付业务流程.png 1 支付结果回调(图中的17步) 支付结果 ...

  2. Android集成微信支付

    Android集成微信支付 项目中集成第三方支付的功能,基本是我们app中经常用到的功能.今天先给大家讲一下微信支付的集成过程,重点只说一下代码部分.首先,你要到微信开发者平台注册账号,并创建你的应用 ...

  3. Android 集成微信支付和支付宝支付工具类

    Android 集成微信支付和支付宝支付工具类 1.前言 去年年底接了一个商城app 外包项目,里面尼涉及到 微信和支付宝支付,这里我整理出几个工具类,下面就和大家分享一下,废话不多说,下面我一步一步 ...

  4. Android 集成微信支付和支付宝

    最近比较闲,公司项目更换后台,于是自己来研究微信支付和支付宝支付,把自己学习的过程写下来,以备以后查看. 注:要集成微信支付和支付宝功能,必须要有以下几个配置信息,而这写信息需要公司去微信支付和支付宝 ...

  5. 微信支付 android4.4,Android集成微信支付

    我之前集成过Ping++这种第三方的支付,但没有单单针对微信官方的支付集成过,这次做遇到很多坑,记录下. 微信支付的过程: 首先在微信开放平台上申请AppID,在开放平台的应用管理中将你的应用启用支付 ...

  6. Android 集成微信支付详解

    打包后才能起调支付 微信支付成功起调 微信skd下载:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_1 签名APK下载:h ...

  7. Android集成微信支付SDK,实现支付功能

    官方集成文档地址:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8_5# 一.在您 App Module 的 build.gra ...

  8. Android集成微信支付跳坑指南

    1. 前言 "好记性不如烂笔头",现在 平常 碰到的一些知识点都是直接复制到印象笔记中,但是那些资料都比较零散,该总结的还得总结.前段时间完成了在线支付的微信支付,趁着一些注意地方 ...

  9. Android集成微信支付功能

    准备工作这里就不说了,包括签约和申请APPID,附上微信开放平台APP开发步骤,不懂的同学可以参考这里: https://pay.weixin.qq.com/wiki/doc/api/app/app. ...

最新文章

  1. 卷积神经网络中的参数共享/权重复制
  2. MySQL STR_TO_DATE函数
  3. 4款深度学习框架简介,初学者该如何选择?
  4. C#LeetCode刷题-多线程
  5. 我的世界java版如何装mod_Minecraft如何安装Mod?Minecraft添加Mod的方法
  6. Residual Attention Network--2017-【论文理解】
  7. css实现面包屑导航
  8. putty拷贝服务器文件,Windows下拷贝Linux的文件到本地(Putty)
  9. GCC警告warning: control reaches end of non-void function [-Wreturn-type]|
  10. java设计模式-设配器模式
  11. Scrapy源码剖析前戏之Twisted使用
  12. 网站网页快速变灰方法
  13. 电脑经常蓝屏怎么解决
  14. 键盘怎么锁定计算机,电脑键盘锁住了怎么解锁 详细方法介绍
  15. uni-app海报保存制作
  16. 诗歌(6)—饮湖上初晴后雨
  17. iOS基于MVC的项目重构总结
  18. web程序设计(3)——使用CSS设计新闻网页
  19. python绘图案例——递归绘制分形树
  20. 关于WM_ERASEBKGND和WM_PAINT的深刻理解

热门文章

  1. ICC 图文学习——LAB0:ICC图形界面
  2. fault tolerance中的错误和故障检测(Error and Fault Detection Mechanisms)
  3. [51单片机]按键部分(软件消抖)
  4. 笔记本gtx1650最好用驱动_Intel EVO平台认证有啥用?只看真实性能 闭着眼买笔记本都不会错-Intel,EVO,笔记本,认证 ——快科技(驱动之家旗下媒体)-...
  5. 如何给PDF文件添加页眉页脚,一分钟轻松搞定
  6. rk3288 调试dvp摄像头_RK3288 uvc摄像头调试
  7. 光猫H2-3交换机K2P|K2Padavan无线路由器单臂路由上网
  8. pandas 转换为文本类型_python – pandas将文本特征转换为数值
  9. 关于android6.0网络连接感叹号的问题
  10. 关于人机智能的一点思考