Android集成微信支付(史上最详细,最无脑)

写在前面的话

第一次在简书发文章,上个星期公司项目因为业务需求,需要接入微信支付,本人之前并没有接入微信支付的经验,经过一个星期的噩梦,在此整理一下在app端接入微信支付的详细步骤,能让小白都能无脑接入成功的新手教程


接入前的准备

别先急着去搞你的代码,接入先从微信开放平台open.weixin.qq.com/cgi-bin/index官网开始。


1.微信开放平台

已经搞定微信平台开发者账号,并且添加好了应用,开通了微信支付的同学跳过。

申请接入步骤流程

为什么第一步先看这个地方,因为有的公司开发团队职责分配不明确,有些这部分任务也是由开发人员来完成的,1来照顾小白,看一篇帖子就搞定这个垃圾功能,不用再去百度怎么创建平台账号等等琐事。2来让开发人员直接把这个图丢产品脸上,开发:“接个鸡儿微信开发,微信平台账号你创好了嘛?应用添加了嘛?支付功能申请了嘛?”。

推荐是由产品等划水职业来搞定这部分工作,反正不是开发来做。不是偷懒什么的,这里面有些步骤是需要公司工商证明等材料提交上去,然后审核的,我们小开发仔没有,再说产品连这个都搞不定,我要你产品干嘛?


2.微信开放平台-开发者

如果你的产品经理跟你说他弄好了,你打开开放平台,登录账号,根据步骤进入到这个界面,不是下面这个图的样子,二话不说直接锤他,往死里锤!                                                                                                                                                                                                                   ------ 尼古拉斯 子路

正常的应用详情

全部审核成功还会有一个商户号,还包括商户平台的账号密码等,商户平台我们不管,但是appID商户号我们一定要知道,调起微信支付需要用到这两个参数,可以自己本地配置,推荐还是让服务器回给我们,我们从服务器取比较正规。                                                                         ------ 尼古拉斯 子路

如果是这个样子,那么恭喜,你的产品经理不是个废材、只会喊加油666。


绑定应用签名和包名

上面这个界面怎么来的:“应用详情”界面,拉倒最底下,看到“开发信息”,点击它最右边那个原谅色的“修改”,界面跳转后就是这个界面。


下面告诉大家怎么找自己的应用签名和包名:       

AS中项目的包名

1.签名稍微复杂一点,先下载一个签名生成工具,安装到手机上。签名生成工具下载(这个下载链接如果失效了,自己直接去开放平台 资源中心--->资源下载--->Android资源下载) 再把页面拉到最下面,就能看到了。

2.运行那个签名生成工具,在那个框里输入应用包名点击获取签名就行了。

签名生成工具

3.签名是根据你编译时候用的jks文件决定的,建议大家debug版build的时候也设置成release时候用到的jks文件(下图)。不用一会去开放平台提交debug版签名,等待开发调试完毕,又去开放平台换成release签名,我个人感觉是有点麻烦的,当然,自己选择。

设置编辑时候的jks文件

Tips:开放平台绑定的签名和手机上用签名生成工具得到的签名一定要一致。当然包名你也别给我搞错了,不然你就等着各种BOOM。                                                                                                                               绑定包名和签名的时候不用管ios他们填什么,我们只管我们android,他们填什么都跟我们不搭嘎,这里告诉大家这个顾虑是多余的。                                                                                                                                                                                                                            ------尼古拉斯 子路

是不是很简单,开发平台配置完成后,可以细致的过下官方文档,有惊喜,下面正式开始代码部分的接入(文中说的是android studio集成方法,还在用eclipse的小伙伴我只能默哀,这东西就像一个是电脑端游,各种超清画质,无限地图,多人竞技等等,一个就是小时候玩过的插卡小霸王,二者不可以道里计)。


代码集成

1.添加依赖,下载demo(笔记本截图太难受了,屏幕太小,截不全)

android资源下载

2.打开官方支付demo

PayActivityWXPayEntryActivity(支付回调界面)复制到自己的项目中,修改下报错,除了Copy一下跟这两个类有关联的类,其他都不用管。其中WXPayEntryActivity的文件目录格式要跟下图一样,开放平台绑定的商户应用包名 + wxapi + WXPayEntryActivity。PayActivity则作为支付界面,来调起微信支付,如果有自己的支付界面,请替换。

Tips:Copy的类中所用到的appID替换成自己应用的appID,这点都忘了可以回家养猪了                                                                                                                                                 ------尼古拉斯 子路

官方demo截图

3.AndroidManifest.xml中注册

权限和activity注册代码在demo中就能找到

AndroidManifest.xml中注册

4.完善一下Copy的两个主要类

其中WXPayEntryActivity回调类中,onResp方法,可以参考修改成下图。

微信支付回调方法

PayActivity支付类

这个类要跟你们讲一下支付的流程,先看demo。

微信官方demo支付类

1.demo中这个接口地址是直接返回参数的,可以用浏览器看到返回值,真实项目中地址由后台接口提供,并且我们还要传若干参数给服务器,让它调用微信的统一下单接口,再回给我们订单信息。

2.这七个参数是必须传给我们的,具体自己跟服务器端商量,看需求。需要注意的是sign这个参数回给我们的时候是要经过二次签名的。一次签名是在服务端调统一下单接口需要作为参数传给微信的api的,通过微信api返回的参数,进行二次签名(如下图)。这个app本不需要了解,但是就怕你的服务端队友没做过支付,然后又没仔细看过文档,或者在文档中迷失,那就等着无情-1教做人。

商户与支付系统交互说明

最后贴上我的支付类截图

给服务器传的参数
请求成功调起微信支付
获取七颗龙珠召唤神龙

如果微信支付难度如果是100,那么返回-1的就是其中的80,为什么这么说,看下图。

回调errCode值列表

你们看见这个-1知道是什么原因造成的嘛?没人知道!最屌的就是这个叫“其他异常”的,所以说搞过微信支付的程序员为什么说这个东西垃圾,不是没原因的,把这些吃人饭不干人事的东西推出去毙了,我第一个赞成。吐槽的地方有很多,就不多说了。

微信支付返回-1的情况和提醒:

1.appID,一般不会搞错,搞错的都是一些非要手打的铁头娃。

2.正式打包发布的签名,前面说过开放平台绑定的签名和手机上用签名生成工具得到的签名一定要一致,概念要清楚,一般情况是你发布打包和debug运行的时候他不是一个jks文件,这个随时可以用签名生成工具apk查看,问题不大。

3.开放平台修改绑定签名都是即时生效,提交就生效,不用审核啊那些鬼东西。

4.服务器订单签名,虽然调了统一下单,但是没有拿微信api返回给他的参数做二次签名就回给我们,然后我们这边也没处理,这是一定报-1的,没做过的不一定知道这点,文章前面也说过。服务器和app端都可以二次签名,但是我们让服务端做,为什么?因为android开发鸡儿最大。

按照我的文章来,不会报错,当然了,少不了忘记写什么内容,,如果害的大家掉坑了,可以评论回复,也可以喷我,但是我先声明,我这人经不起批评!                                                                                                                                                                                                           ------尼古拉斯 子路

最后

建议大家上面的代码和截图不要全部搞ctrl+C,ctrl+V那一套,能自己敲的尽量自己敲,加深印象,有助理解,理解掌握了才能做到无招胜有招的境界,上山的路有很多条,希望我们都能找到自己那条。

最后把业务流程图给大家,这个一定要看,而且要看明白,看懂,想做好程序员要知其然还要知其所以然。放在最后是因为我觉得接入成功之后再看能更好的理解,对着代码,对着流程,这么简单的东西,相信搞android开发的都能明白,加油,开发至上。

以上有关激进言论跟我没任何关系,网上复制来的,18以下的请在大人陪同下观看,本人原创,转载注明出处就行,谢谢大家。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容