Android微信支付遇到的坑

转载 2015年11月18日 11:30:16

文章是转载的,,因为看了这文章后感觉跟自己搞微信支付的过程很像,所以转下来收藏下相当于自己的经历

原文:http://www.bubuko.com/infodetail-1020413.html


今天心情不太美妙

?

微信支付让我折腾了一天
早上开始做微信支付的时候,原以为会像做支付宝快捷支付一样,俩小时搞定收工
做着做着,才发现掉到了坑里,比我高的那种~

账户申请就不多说了,首先得申请在微信开放平台申请帐号,然后等待审核通过,通过后需要在管理中心创建应用,然后等待审核,通过之后需要在应用详情中申请获得微信支付能力,然后等待审核,还得在验证账户,签署协议。。
还好,每次审核时间一般在一个工作日左右,而不是提示的一到五个工作日

这第一个小坑,便是在添加应用时填写应用签名了,你得把应用打包好运行在手机上,然后下载一个签名检测工具,运行,输入应用包名(这里在一个腾讯官方常见问答页还是报名俩字),然后把检测到的应用签名手动输入到网页中,没错,签名信息没法复制,三十多位的字母数字混合字符串得一字一字的输入到网页的文本框中,这可比输银行卡帐号难多了,呃,其实这还好

这第二个坑便是官方文档了,开始开发得先看看开发文档吧,于是在资源中心依次进入移动应用开发 》微信支付功能 》Android开发手册,呃,原本以为打开后便是按步骤教你如何集成,可是,我看到的只有几行内容:


对,Android开发手册就这么几行说明性的文字,还好有个链接,我点过去看看,于是,就到了这个页面:


说好的开发文档呢,怎么只见SDK和调用示例,难道意思是只给我们看代码吗,可我还是想先看看文档啊,呃,没事,我再找找。还好,左边菜单上有个APP支付,点开来,还真有了APP端开发步骤,可是,这不应该才叫“开发手册”麽,呃,其实这也没什么

做支付宝快捷支付的时候,需要我们指定私钥什么的,于是在做微信支付的时候,我看到了也有个APP_IDAPI_KEY,记忆中在应用详情中有分配的两个字符串,便直接Copy过来放上去:


之后就是无尽的失败(具体的不记得了),怎么会这样,微信分配给我们的还会有误麽,好吧,我从头看看,N久之后,发现这里给我们的一个是AppID,还有一个是AppSecret,却不是支付所需要的API_KEY,KEY去哪里了呢,在开放平台里找来又找去,死活不见我的那个KEY,后来只好与公司上级沟通沟通,看是不是漏了什么,嗯,果然,还有个叫商户平台的东东,而且登录的帐号密码是完全重新分配的,好了,进去之后,先是安装查看证书,又是短信验证安装操作证书(因为没有操作证书的话里面很多功能都进不去),好像挺安全的样子,好了,总算在账户设置 》API安全中找到了这个API密钥:

呃,新商户得先设置API密钥,可是文档中死活没透漏这一点呢!
其实这没什么。

游戏打到最后总会是最大的Boss,这坑填到最后会发现是最大的坑
当我一切准备就绪后,也就是界面,流程都完成后,尝试着在手机上支付了,却发现,那个倍受期待的支付界面总是不现真身,难道是代码错了?或是流程漏了什么?还是需要别的什么证书、密钥?
当我遇到挫折后总是第一个怀疑我自己。
嗯,一定是漏了什么
于是,我把官方的所有文档,下载的相关demo从头看了一遍,噢,不,是N遍,求这N的值?我只能告诉透漏一点,它至少大于5。
看起来代码和流程没什么错,可能是签名失败了吧,或者传值错误了吧,然后是无尽的调试,把所有传值和签名打印,利用官方提供的在线签名验证工具精确到像素级的审查各参数值的正确性,后来的结果想必你也猜到了,没错,所有的参数值一个不错,一个不落,而且参数名还是按照ASCII码从小到大排序哦~

在官方资料求解无果后,只能求助万能的Google了(请不要再联想到百度了好麽),还好,找到了一篇《Android学习之 移动应用微信支付集成小结》,标题为小结,实为移动应用APP集成微信支付的坑点分享!,标题党啊~
其中提到了.keystore签名文件部分(详细见原文),我尼玛立马有灵感了有木有,我现在要做的是把应用签名打包,丢到手机里在试试,可是都快晚上10点了哎,没事,只要今天能把微信支付调通,即使通宵我也无怨无悔嘛
然后是打包,传到手机里,卸载掉之前的开发版应用,重新安装签名版的应用,可是,在这里又被这安卓手机给坑了,我明明(请不要叫我明明)已经卸载了之前的版本在重新安装的,可是它居然告诉我即将替换之前的版本,于是就安装失败了(做Android开发的应该都知道,开发版和正式打包的签名版不能覆盖安装,必须先卸载再安装,因为签名不同),我尝试着用adb shell ls -la /system/app/看看还有没有这个应用,呃,没有,用adb shell pm list packages试试,也还是没有,我又尝试用adb uninstall cn.xxx.ooo来卸载这个应用,结果当然是失败的,因为根本就没有这个应用了嘛,真是郁闷呢
最后是怎么解决的呢?我再尝试着又用手机来安装调试版本的应用,然后在用adb uninstall卸载,然后再打成正式签名的发布包,在安装就好啦~

好了,手机的坑解决了,不忘初心,来试试微信支付好使不好使,嗯,没错,支付就这么好了,就这么好了,这么好了,好了,了。。。

这时已经是11点了,这倒没什么,主要是我居然没见微信的官方文档有让我用正式签名版的包,任何地方(Anywhere),都。没。有,就这么被坑到现在

好了,说多了都累,掉一坑,长一智。

?

Android集成微信支付遇到的坑

android 微信支付 大坑 keystore
  • gengbaolong
  • gengbaolong
  • 2017年06月20日 18:31
  • 410

微信支付遇到的坑

1.首先,根据开发文档,申请APP_ID(至于怎么获得签名,这个下个签名工具就可以了) 获得了APP_ID之后,支付和分享都需要用到。此时分享就可以直接使用了。但是支付还需要申请。(如果此时微信分享不...
  • u012975370
  • u012975370
  • 2016年03月24日 14:13
  • 2140

Android微信支付彻底扫坑

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

Android开发遇到的坑

最近在开发中总会遇到各种坑,由于记忆力不好,先记录在这里。 以前看过的一些总结,基本上很齐全了: http://jcodecraeer.com/plus/view.php?aid=3773 https...
  • ly635676581
  • ly635676581
  • 2016年11月25日 16:31
  • 384

Android遇到的坑小结

> 如果知道使用executeOnExecutor方法,自己定义线程池就不会出现Task任务没有立即执行的情况 http://zmywly8866.github.io/2015/09/29/andro...
  • ShareUs
  • ShareUs
  • 2016年07月30日 23:42
  • 541

游戏cocos js 接sdk时 遇到的坑

1.库文件里面有多的64位等等高版本的 可以直接删除  2. assets需要添加文件 可以在   build-cfg.json {     "ndk_module_path"...
  • liqiangxo
  • liqiangxo
  • 2016年08月17日 18:09
  • 516

Android植入微信支付的那些坑

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

Android 友盟推送踩坑

最近项目使用推送是友盟推送,实际上推送原理相同,但是友盟推送和极光推送在Android端的代码编写还是有很大差别的。极光推送我记得是定义广播,然后在广播中发送通知,在设置跳转以一类的,但是在友盟推送中...
  • lmq121210
  • lmq121210
  • 2017年11月15日 20:10
  • 170

我做微信支付踩过的坑

刚刚参加实习,很多东西都不懂,微信支付是最近才接触到的,开始去看官方文档的时候,一大堆文字东西说明看的有点蒙圈,好像很难的样子,但是随着慢慢的熟悉,微信支付其实也就那样(事实上我却做了两天微笑,渣渣....
  • qq_28468727
  • qq_28468727
  • 2017年02月09日 23:04
  • 483

工作中遇到的小坑合集(java)

工作中遇到的小坑合集fastjson fastjson在使用复杂的集合类型的使用,要使用TypeReference.如下 Map map = JSONObject.parseObject(string...
  • u010632868
  • u010632868
  • 2016年08月21日 20:53
  • 319
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android微信支付遇到的坑
举报原因:
原因补充:

(最多只允许输入30个字)