微信客户端授权登录开始邀请第三方应用内测了,我们虽然是个创业团队,但很幸运的成为了该功能的早期内测用户,经过半年多的试用,积累了不少的经验和教训,分享出来,希望对大家有所帮助。
微信授权登录的优势有哪些?
1. 数亿微信用户直接登录, 免去繁琐注册流程。
2. 支持获取用户基本信息,免去用户填写个人资料的烦恼,并且内容真实可靠。
一个iOS应用使用微信授权登录的过程应该是怎样的?
申请微信授权登录→微信sdk接入→多应用账号打通→提交AppStore审核→上线
为什么提交AppStore审核也列入了这个过程?
因为这里坑最多,我们一开始缺乏经验,足足在这步浪费了差不多两个月的宝贵时间!
下面,我们就按照这个过程,逐一进行介绍。
第一步:申请微信授权登录
微信授权登录的申请条件?
只要应用已经获得了微信支付的权限,就可以提交申请。
具体怎么申请,官方有很详细的介绍,这也不是本文的重点,所以就直接略过了。附上微信开放平台的地址:https://open.weixin.qq.com/
在这里要重点指出的是:
1. 客户端的授权登录是在微信开放平台申请的。
2. web端的授权登录除了要在微信开放平台申请外,还要申请微信公众平台的服务号并完成认证,获取高级接口的访问权限。
修正:微信的伙伴们反馈了最新的进展,web端的授权登录现在可以不用公众号了。
第二步:微信sdk接入
如果你的申请被通过,会得到一个包含有微信授权登录的SDK包,这个包同时也包含了基础的分享功能。具体的接入方法,微信会在SDK包中提供详细的说明文档,按照文档进行接入即可。
在这里要重点指出的是:
1. 授权成功后返回的OpenID仅仅是应用内唯一标识,同一用户在不同应用进行授权,返回的OpenID是不一样的!
2. 即使是同一个应用,同一个用户在移动应用授权登录和在web应用授权登录,返回的OpenID也是不一样的!
OpenID都不一样,那我的产品是一系列应用,想统一账号怎么办?
别急,继续往下看,微信已经提供了解决方案的。
第三步:多应用打账号打通
如果你们的产品是一个系列应用,又或者同时有移动应用和web应用,那么按照微信的规定,每个应用都必须在开放平台进行登记和审核(需要绑定包名,所以不能多个应用使用同一个签名),这也就意味着这些应用每个都是个人的应用!前面说过,这样会导致这一系列应用当用户授权后,返回的OpenID都不一样,无法唯一标识用户!这时就需要使用UnionID机制来解决这个问题。
UnionID使用规则如下:
1. 同一个授权用户,在同一个开放平台账号下的应用中进行授权,返回的UnionID是相同的。
2. 同一个授权用户,在绑定到同一个开放平台账号下的公众账号进行授权,返回的UnionID是相同的。
这下多应用账户打通的问题就彻底的解决了吧!
第四步:提交AppStore审核
本来不该写这个环节的,因为这个环节貌似跟微信授权登录没什么关系,但其实这里才是本文最最最重要的地方,这里真的是坑多且深啊,我们足足在这里耗了两个月左右...
当我们[第一次]满心欢喜的以国内少数几个(现在我怀疑就是第一个!)仅支持微信授权登录应用的姿态,把应用提交到AppStore审核两周后,得到了我们的第一个拒绝通过的审核理由:你们的微信登录按钮点了没反应!
微信登录按钮为什么会没反应?
我们可是经过了充分的测试了呀!特别是微信授权登录流程,更是测的不能更细致了!最后我们发现,这个登录按钮如果想没反应,那一定要做一件事情:卸载微信!
好吧,是我们的问题,作为一个创业团队,没有配专职的测试人员,测试经验不足,遗漏了这一步,让苹果大神您测出来了,我们认了!
我们立刻为微信登录按钮添加了微信是否安装的检测,如果检测到微信没有安装,那我们就弹出对一个提示框,提示用户要去下载微信,而且提示框还提供了直接跳到AppStore下载微信的按钮,我们甚至还贴心的添加了英文版的提示框(因为AppStore拒绝我们通过的理由中的截图是英文版的系统)。
这下我们信心满满的[第二次]向AppStore提交审核,差不多两周后得到了我们的第二个拒绝通过的审核理由:你们应用设置了太高的门槛,必须要安装微信才能登录和使用你们的应用!你们要么使用自己的用户授权认证系统,要么让你们目前的登录不需要安装微信就可以使用。
我们郁闷,我们不服,我们去申诉:我们使用微信授权登录是为了提供更好的用户体验,是为了避免用户输入个人资料的繁琐过程呀!
申诉结果在五天后反馈到了我们:我们仔细阅读了你们的申诉内容,但是还是认为你们应用设置了太高的门槛,必须要安装微信才能登录和使用你们的应用!你们要么使用自己的授权认证系统,要么让你们目前的登录不需要安装微信就可以使用。
好吧,我们屈服了,我们作为一个创业团队,无法让微信授权登录的sdk在未安装微信的时候,可以跳转到web页面进行授权,我们只好用了两天时间开发了基于手机号和验证码的注册登录系统,开始[第三次]向AppStroe提交审核。这次的审核用了一周多的时间,审核的速度是快起来了,可是还是悲剧了!理由甚至都没变:你们应用设置了太高的门槛,必须要安装微信才能登录和使用你们的应用!你们要么使用自己的用户授权认证系统,要么让你们目前的登录不需要安装微信就可以使用。
这次我们彻底愤怒了,增加了那么明显的手机号验证码授权登录界面啊,审核大哥你不可能没看到啊,居然还用同样的理由拒绝我们,太过分了吧!这次我们使用了更为强烈的措辞进行了申诉,申诉结果在提交后的第四天得到了反馈:我们注意到了你们已经提供了自己的用户授权认证系统,但是你们使用的微信授权登录设置了太高的门槛,必须要安装微信才能登录和使用你们的应用!你们要么使用自己的用户授权认证系统,要么让你们目前的登录不需要安装微信就可以使用。
当时我们都无语了,审核大哥你要不要做的这么绝啊!我们当时甚至萌生了要不索性把微信授权登录去掉,换成微博授权登录念头!最终,我们决定做最后一次尝试,就是应用在登录的时候,主动检测微信是否有安装,如果没有安装的话,直接把微信的授权登录按钮隐藏掉,只保留我们自己的注册登录功能!这是我们[第四次]向AppStore提交审核,心里剩下的只有忐忑......六天后,审核通过了!审核终于通过了!喜极而泣啊!
回想整个应用提交AppStore审核过程,耗时近乎两个月,从世界杯前硬生生被拖到世界杯彻底结束,我们的应用是个专注宵夜应用啊,世界杯过了,我们的推广难了n倍啊!
希望大家看了我们的经历,能够吸取教训,不要重蹈我们的覆辙!
以上就是我们应用使用微信授权登录提交AppStore审核的过程。