折腾Android微信支付遇到的坑

今天心情不太美妙

 

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

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

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

这第二个坑便是官方文档了,开始开发得先看看开发文档吧,于是在资源中心依次进入移动应用开发 》微信支付功能 》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),都。没。有,就这么被坑到现在

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

 

查看原文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值