之前开发过高德地图的,百度地图的,人家官网的资料,开发文档,官方论坛,应有尽有,特别详细。微信支付相对支付宝支付,操作繁琐了很多,而且有些文档上的说明太过专业,导致问题多多。

首先他们官网上面只有eclipse的案列说明,没有Android studio版本的,其实也没什么太大的区别,注意一点就行了

在调用微信支付之前,首先要申请微信开放平台帐号,微信商户平台帐号,还有在微信开放平台添加移动应用等等操作都要先做到位,不然是没法支付的

1、首先你要申请微信开放平台,然后完成后,进入开放平台的管理中心,创建移动应用,应用审核成功后会直接拥有微信分享、收藏等功能,而app支付需要另外再申请

然后进行微信支付的申请,申请需要填写资料进行审核,而且还需要微信商户帐号,关联商户帐号,获得商户key(商户key在后面生成sign值时需要用到)

2、服务器那边应该要操作的是,首先调用微信统一下单接口,需要用到多个参数(包括商户key)进行调用接口,成功后会获得应该返回给我们的参数,这一次返回值当中会有sign值,但是该sign值不需要用到,也不需要返回给我们app端,这里需要特别注意的一点是,后台服务需要二次签名,就是把调用统一下单接口返回的值(主要六个参数appid,partnerid,prepayid,package,noncestr,timestamp),进行二次签名得到sign,该sign就是app端需要用到的。(因为进行签名的时候需要用到商户key,商户key比较敏感,所以签名步骤需要放在服务器端进行,签名之后由app端请求返回)

3、接下来就是介绍app端要操作的步骤,首先,你需要对你的app进行打包操作,获得keystone文件,或者,然后运行微信官网提供的app获取你的应用签名,操作如下

输入包名,就可以获得你的应用签名(这里需要注意的是,需要打包后的app,而不是直接运行的),然后进入微信开放平台,在你的应用那里添加。由于需要保证支付安全,需要在开放平台绑定商户应用包名和应用签名,设置好后才能正常发起支付。如下图所示

接下来就是app调用了,在App调用当中,首先要先注册app,就是往微信客户端添加你的应用,还要引入官网提供的jar包,相信引包的操作大家都会了,然后才可以进行app支付
final IWXAPI msgApi = WXAPIFactory.createWXAPI(context, null);
// 将该app注册到微信
msgApi.registerApp(“wxd930ea5d5a258f4f”);

app支付中,我们客户端请求服务器接口,回调需要的参数,然后根据参数进行app支付请求,,具体操作如下


上图是微信官网上的案例,上面有个错误的地方,大家自己改过来,还有这里的sign,是服务器那边进行二次签名得到的sign,而不是调用统一下单接口得到的sign,服务器后台的工作人员请特别注意。(本人被这个sign给坑了好几天了)

然后就是支付回调这一块了,这一块也是超级坑爹的,我从这一块就觉得微信好霸道。
你需要在你的应用包名相同路径下创建一个包路径wxapi,然后在下面再创建WXPayEntryActivity类,比如说你的应用包名是com.example.app,那么你就需要在com.example.app.wxapi下面创建WXPayEntryActivity类,而且微信那边特别强调,如包名或类名不一致会造成无法回调结果(微信够霸道吧)。。。而且我发现,Android studio上面开发的话,还有一个很坑爹的情况,就是as上的包名可以在build.gradle上面指定为applicationId,然后在AndroidManifest文件上的package另外命名包路径,这时候就有问题了,因为微信指定是AndroidManifest文件上的package的包名,但是你却随便路径,不与应用包名一致,结果导致你连回调结果都不可能实现,参考一下官网资料,如下图所示


还有配置文件记得给WXPayEntryActivity类加入android:exported=“true”,不然即使回调成功也不会出现该结果界面,也顺便加上启动模式吧android:launchMode=“singleTop”

<activityandroid:name=".wxapi.WXPayEntryActivity"android:exported="true"android:launchMode="singleTop"android:theme="@android:style/Theme.NoTitleBar" />

当你没其他问题时,你会回调成功,回调成功,并不一定调用支付成功
回调中errCode值列表:
名称描述解决方案0成功展示成功页面-1错误可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。-2用户取消无需处理。发生场景:用户不支付了,点击取消,返回APP。

这个微信支付的流程全部搞定了,结果是一直返回-1给我,试过很多方法都不行,最后才知道sign需要经过二次签名,呵呵,官网api都没说清楚,很多地方都让人不明不白,出的问题特别多,真是有趣的微信支付。

有关微信支付的就到此为止了,应该没有什么问题,有问题的话可以在下面留言,我会及时回复的

2016年微信app支付开发填坑篇相关推荐

  1. 微信App支付源码坑注释

    微信App支付源码&坑注释 部分的代码,因为代码是copy的我自己代码,然后再进行部分的编辑和注释,所以在使用的时候有可能有欠缺,不过整体来说,应该不影响使用的.如果有疑问,可以留言.在微信A ...

  2. JAVA微信扫码支付及微信App支付开发(模式二)完整功能实现

    一,准备工作 事前申请一个商家版的微信公众号(目前微信支付只有商家版公众号可开通),然后开通微信支付功能,并做相应的配置. 申请开通微信公众号和开通微信支付需要等待审核,一般都5个工作日左右.开通成功 ...

  3. 微信APP支付的踩坑记录(一):prepay_id 与 prepayid

    最近在做微信APP支付时,发现报下面这个错误: -1 错误 可能的原因:签名错误.未注册APPID.项目设置APPID不正确.注册的APPID与设置的不匹配.其他异常等. 用微信签名校验工具校验签名又 ...

  4. 微信APP支付开发(java)关联openId和appID不匹配问题

    @ 微信打包APP,支付接口后台包这个错误,openId和appID不匹配 #之前一直做 H5 小程序方面 今天做App 简直闹心死了 微信app支付与小程序支付有所差别(切记不要传openid)上代 ...

  5. 支付开发填坑记之支付宝

    支付宝在所有支付方式中最好开发的了,因为文档比较清晰,而且开发起来也比较简单.因此,支付宝的坑是相对较少的. 原文地址 APP支付 APP支付步骤为: 获取支付宝的配置信息. 生成商家订单信息. 根据 ...

  6. android自动微信支付平台,Android微信APP支付开发要点

    基本概念 包名值得是你APP的包,在创建工程时候设置的,需要在微信支付平台上面设置. 签名指的是你生成APK时候所用的签名文件的md5,去掉:全部小写,需要在微信支付平台上面设置. 调试阶段,签名文件 ...

  7. 微信APP支付填坑记

    首先吐槽几句,微信支付很强大,古人有诗赞曰:自古多坑空余恨,此坑绵绵无绝期. 先说几个必做前置任务: 1 在微信商户平台设置你的公用key,程序里生成sign签名时,要用到这个key.为md5 32位 ...

  8. 为微信开发填坑:微信网页支付的开发流程及填坑技巧

    GitChat 作者:极笔北客 原文:为微信开发填坑:微信网页支付的开发流程及填坑技巧 关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术 [不要错过文末彩蛋] 小程序作为微信之父张小龙钦 ...

  9. 为微信开发填坑:微信网页支付的开发流程及填坑技巧 1

    GitChat 作者:极笔北客 原文:为微信开发填坑:微信网页支付的开发流程及填坑技巧 关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术 [不要错过文末彩蛋] 小程序作为微信之父张小龙钦 ...

最新文章

  1. 20155227 2016-2017-2 《Java程序设计》第九周学习总结
  2. python在函数内部有没有办法定义全局变量_修改函数内部的全局变量
  3. hashMap怎么解决hash冲突的
  4. 【Spark-core学习之九】 Spark案例
  5. mysql触发器 存储过程_mysql触发器和存储过程
  6. 全球及中国箱包市场需求前景与投资动态分析报告2022版
  7. 腾讯2019暑期实习生提前批CV岗笔试题
  8. 二叉查找树的Java实现
  9. 【原创】编译cupcake笔记
  10. idea在创建类时在File Header中加入昵称和时间等
  11. 《从Paxos到Zookeeper:分布式一致性原理与实践》第一章读书笔记
  12. 修改蓝牙耳机按键映射_拆解报告:QCY T4 TWS蓝牙耳机
  13. tomcat安装apr报错解决
  14. git中如何提交空目录
  15. MATLAB线性回归方程与非线性回归方程的相关计算
  16. 【Windows编程】系列第八篇:通用对话框
  17. 微信小游戏跳一跳外挂辅助程序
  18. 陆琪:年薪十万凭什么不能开…
  19. 2018优秀讲师排行榜出炉,将受邀出席开发者大会!
  20. SpringCloud学习笔记7——初级篇之服务降级

热门文章

  1. 关于Windows XP sp2下金山词霸2005取词BUG,桌面重启修正方法
  2. macbook版ppt keynote 一些你不知道的小技巧
  3. MTK SPI驱动开发
  4. InterSystems 2022全球峰会亮点解读:Smart Data Fabric与InterSystems数据平台的超能力
  5. Sqlserver 修改字段长度
  6. 宝宝树发行价为6.8港元 王怀南:上市不是为高估值
  7. JDK8下载(64位)
  8. 计算一个字符串中字母的个数
  9. win10下安装adb、出现的问题及解决办法
  10. picoCTF,Web Exploitation,网页开发类,39/45