不要温和的走进那个良夜
Do not go gentle into that good night

Android微信支付坑你没商量

在我写这篇文章之前,我要由衷的感谢在此之前辛苦付出的兄弟姐妹们:

他们有这样的

微信支付

 

 

 

 

还有这样的:

微信支付2

 

 

 

为啥咱不说支付宝?我只能说,在微信支付面前,支付宝不要太好哦!

好吧,现在趁我还有一丝热气,我一定要把这个过程记录下来,安抚我已经崩溃的心!!!!

在做完支付宝之后,理所当然的认为微信也应该很简单,老板还看了微信支付,居然不支持转出,也就是只有好友才能相互打款,不像支付宝那么随意,不过这样好像更安全,也更接近他一款聊天支付工具的标准.话不多说,开始工作.

首先:需要在微信开放平台注册账号,然后提交申请

我这边因为是一开始就提交了所以其实很快

weixinkey

这里最主要的就是那个应用签名,需要你自己用正式版的keystone打包发布之后查看签名,有的哥们不太知道怎么看,我一开始用查看MD5 SHA1的方式看的,反正不对,微信给出解决方案,但是说的极其不清楚.

这里是你安装好了你的正式版的APP,然后再在手机上安装他的签名检测工具,输入你正式版的包名比如org.lfzh.www,因为这个包名跟你正式版的APP一致,他就能测出你的正式版的app的签名

签名工具下载地址https://open.weixin.qq.com/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android.apk

wx3

 

我第一次默认是安装了测试版的,我一度以为是通过我输入的包名来签名的,而不是通过我打包的APP于是就各种出错,各种重试,而我只是默默地看到一个错误代码-1

而且最搞笑的是这么一大段居然不支持复制的,也就是只能手打,微信团队你这是有多坑,这么复杂的签名,让我手打.

第二步:申请支付功能,登录商户平台

一般也就是申请+等待+查账户验证支付

第三步:测试demo开始开发

一开始把demo下载下来一看,坑爹的居然是gbk编码,我这WIN8直接乱码,这是啥年代的代码,再一看,好像还挺全的,步骤详细

写着写着就不对劲了,我在客户端照着demo做了各种签名各种加密生成了partnerid之后心里纳闷,啥时候轮到服务端操作啊,关键步骤最好是服务端操作啊,因为支付宝就是这样的,结果一看,坑爹的文档写着:

weinxd6

 

没错,这个操作确实是服务端完成的,但是下载下来的开发文档却写着

11

22222没错,一直到生成partnerid,整个过程都是自己客户端完成我知道这是两种方式,但你也好歹说清楚吧,完全各说各的,文档还特别强调

注意:appsecret、appkey、partnerkey不应硬编码到客户端程序中,建议需要用到这三个字段的过程都在服务器端完成。

结果又在后面说这个必须写在配置文件里面

peiz

 

这么捣鼓半天,终于可以生成预支付订单了,然后我这边也能愉快地再次签名并提交支付了

问题来了

啥都没反应,仔细一看原来是微信支付有个很强制的要求那就是你丫回调必须是有个.wxapi的包同时文件名称必须是WXPayEntryActivity,然后继承接口实现回调

做成这样的也就只有微信了,我这个页面之前是用的fragment做的,初始化的时候就很BT的用了msgApi = (IWXAPI)((MainActivity)getActivity()).getMsgApi();这样的代码,结果现在因为会掉的问题需要弹出一个新的activity,就算这个activity没有界面光传值给我原来的activity下面第二级fragment也够我喝一壶的,还不包括支付失败,没办法,改写fragment呗…

终于这些都做好了,点开支付,居然弹出了微信登录页面,看来希望在向我招手啊

你想多了

登录之后支付只会万年不变的返回一个微信支付结果:null;code=-1

咱不是有问题找文档么?一看文档

-1 错误 可能的原因:签名错误、未注册APPID、项目设置APPID不正确、注册的APPID与设置的不匹配、其他异常等。

其他异常等是个什么鬼,你怎么不说-1错误,即未支付成功的任何问题?

好吧,总算知道点啥了,默默地全部重检查一遍,比如appid,签名,等等,我确认我检查了一下午,实在是不知道是哪里有问题,在网上查了好多也是不知道,有的说你没支付权限等等,直到看到这篇文章!

兄弟感谢你啊:http://www.bubuko.com/infodetail-1020413.html

发现这里给我们的一个是AppID,还有一个是AppSecret,却不是支付所需要的API_KEY,KEY去哪里了呢,在开放平台里找来又找去,死活不见我的那个KEY…

我一看也是,这不是开放平台给的这个么?

123

我还是太年轻了,原来这个key指的是商户平台上面有个API安全里面让你手动设置的一个32位小写字母+数字的混合key.你文档倒是稍微给说一下,完全不同的两个平台两个网站,你让我去哪撸?连开发邮件都只字未提

最后

通常到这里就完成, 我的也是,因为我知道这玩意肯定要在正式版里面测试,不然不出结果,果然,测试的时候要打包,上传到手机,测试,完了修改一下再次打包上传,想想支付宝?签名是个什么鬼?能吃么?看到很多可怜的小伙伴用的测试KEY一直不出结果的,我也是很同情了!

 

赞(0)
未经允许不得转载:林枫紫涵 » Android微信支付坑你没商量

评论 10

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #8

    感谢楼主,赞赞。

    代寫論文4个月前 (03-21)回复
  2. #7

    感谢楼主的分析

  3. #6

    微信很多坑

    朴人博客2年前 (2016-03-19)回复
  4. #5

    哈哈,不是真坑就好

    themebetter2年前 (2016-03-19)回复
  5. #4

    相对来说,这些确实是的

    众宏健身器材2年前 (2016-02-28)回复
  6. #3

    😎 😎 😎 😎

    佛山不锈钢管厂家3年前 (2015-12-12)回复
  7. #2

    吓死我了,还以为会坑钱

    欣欣3年前 (2015-11-20)回复
  8. #1

    谢谢分享 上品户外

    KO户外3年前 (2015-11-18)回复