为了应对微信的全面封禁,2015年2月红包密码的推出,让支付宝在2015年的红包大战中赢回了与微信的一战,凭借着连环红包、搞笑红包这些好玩的红包游戏(不过馒头还是不知道为什么今年突然下线了……),支付宝围绕红包打造了全新的互动模式。
又一年过去了,今年的支付宝红包密码推出了让用户更有参与感、更有存在感的自定义密码模式(俗称“定制密码”)。
不知道大家对于支付宝自定义密码有什么看法呢?
有一天,馒头常去的群里有人提出了这样一个问题:支付宝自定义密码的步骤,为什么要放在最后?
什么意思呢?我们画一个简单的流程来解释一下这里的“放到后面”是什么意思。
主要流程:a.打开支付宝,包团红包(金额+数量)->b.付款验证->c.生成团红包->d.自定义密码(可选)
不知道在看完我上面画出的令人相当沮丧的过程之后,你是否理解了“放到后面”的概念。
也就是说在b->c的过程中,群红包已经生成了,并不是说用户自定义中文密码之后才生成群红包。所以这里的前后概念,就是说哪个步骤是c,哪个步骤是d。先。请注意,虽然我将步骤d标记为“可选”步骤,但它只适用于这个群红包里的支付宝好友、生活圈或者钉钉阿里系APP。如果要分享到微信,密码是必须的,不然就没有媒体渠道可以分享。至于为什么呢?想想支付宝红包密码推出的背景吧。
我来加个话题吧#有小勇士问,我不想用中文密码,太麻烦了,我就想用数字密码,可以吗#
是的!当然!只不过支付宝故意弱化了数字密码的入口,对于视力不好的同学来说,几乎是隐蔽的,不注意的话根本就看不到。啥?不信!来来来……看下图:
怎么说呢……其实大部分公司搞出一个新东西的时候,一定会大力推(因为努力才能创造奇迹,哈哈哈……),而弱化那些可能吸引用户眼球的部分(说不定支付宝会接手这个游戏呢,比如搞笑红包、搞笑红包、全力支持男神女神红包、自定义红包密码也是这个原因,不过纯粹是馒头YY)。当然,这也不能说是坏事。也许在某些小英雄眼里,这就是QJ(不懂的话请百度搜“QJ”)。但如果广大用户并不在意那些削弱甚至隐藏的点数,或者只是觉得新功能更有趣,这或许也未必是坏事。策略的推进也减少了一切可能干扰用户专注力的东西来优化体验。不过以上都要建立在准确的判断之上,当然产品经理的使命就是让正确的事情一件一件发生,对吧!(温馨提示:一旦坚决选择生成数字密码,就不能再自定义红包中文密码了)
回到正题,自定义密码为什么要放在最后呢?哼!我觉得放在最前面最好。也就是我定义好密码之后,就可以生成群红包了,不是很好吗?
在讨论这个问题之前,我们先说说“密码”。其实2015年数字红包密码的产生也是被延后了,只是相对潜移默化罢了。说得更深奥一点,密码就是突破敌人防线的手段。你见过有密码的微信红包吗?没有!为什么?因为人们都宅在家里玩,不会出去玩乐。
也就是说,今天微信可以屏蔽我来自阿里巴巴域名的支付宝分享链接,但是一张带有数字密码序列号的图片(图片只是传输介质,不用管它,为啥?朋友圈直接用图片发序列号就可以了)你屏蔽不了,也屏蔽不起。
其实今天的问题只针对中文密码,当然你也可以问为什么数字密码都是系统生成的,不支持自定义输入?
我们试想一下,如果真的支持用户先自定义密码,再生成群红包,可以吗?
我们举个最简单的例子,小A创建了一个群红包,定义了密码为“独享红包”。但是在大洋彼岸,小B也创建了一个群红包,定义了密码为“独享红包”。两个密码相同的红包,可能ID不一样。为什么呢?因为ID里面包含重要的信息,就是这个红包的主人是谁?它告诉你该抢谁的红包。但是这个ID必须保密,如果公布出去,有心怀不轨的人说不定就能破译出这个ID,知道你的支付宝账号和密码,那麻烦就大了!所以需要生成一个外部ID(即密码),与这个内部id(即保密id)形成映射关系,也就是只有我们的系统才能通过外部id知道这个内部id是什么。
但接下来令人困惑的事情发生了。当馒头在支付宝红包中输入密码“专属红包”时,我该抢谁的红包?抱歉,系统无法识别!
该怎么办呢?有两个解决办法!一个是让用户自己定义密码,但我的系统会验证(放在前面);另一个是不让用户干预密码的自定义,让我的系统说了算(放在后面)。
这是什么意思?
我支持你先定义密码,再生成红包(很满意吧?),但是这时候开发人员就必须写一串代码告诉系统,大致意思就是“当用户自定义密码后,再去运行密码数据库,做唯一性检查,如果数据库中有相同的密码,就拦截并提示用户密码已经存在,请重新输入其他密码;否则,通过”。但是这个问题太大了!先不说系统再去运行密码数据库累不累?就算能运行,也要花时间吗?好吧,如果这个过程需要时间,用户需要等待吗?就算用户很有耐心,可以等得起几毫秒或者微不足道的几秒,哪怕是几秒也无所谓,但是一旦运行完了,用户等过了,你突然告诉他“对不起,密码已经存在...你得想其他密码了”。用户会勃然大怒的。好吧,就算这个用户超级好,如果不行一次成功,我就试两次,两次不行,我就试三次,那十次、一百次、一千次怎么办?用户真的有耐心吗?几次都失败,人家就不跟你玩了。还不如发微信红包,干脆别这么折腾了。除此之外,还有一个隐藏的问题,也很重要,就是我运行系统之后,发现没有重复的密码,执行“pass”把密码推上去,然后告诉前端,密码就可以给用户看了。这是一个过程,但是一个过程,肯定是需要时间的,问题就在这里,一旦有人在这微小的时间内输入了相同的密码,密码虽然验证过了,但是唯一性检查已经完成了,一开始提到的问题就无法避免了,系统识别不了!你可能会说这种情况不太可能,好吧!虽然可能性很小,但是一旦出现这样的情况,那就麻烦大了!因此无论从用户体验,还是实施的可行性来看,这种方法都是不现实的!
另一种方式,我只能先让群红包生成,然后让系统自动生成密码给你玩。不过,这里开发者还需要写一串代码告诉系统,大致意思就是“生成的红包号密码必须唯一,不能重复,否则就被坑死”。所以也就不难解释为什么2015年春节期间,大家都在吐槽8位支付宝密码,根本记不住!因为无论有多少种数字组合,还是有极限的。既然0-9的数字是无法改变的,那我只能增加密码位数,创造更多独特的组合密码(所以这时候中文密码的出现,或许也算是拯救了未来可能出现的9位、10位难记的支付宝密码)。不然,还怎么玩?不过,这个方案好多了。它让系统来做“防止密码重复”这件事,而不是让用户输入一个然后交给系统来审核好不好,工作量比第一种方法小很多。但缺点是系统不是人,连人都不可能知道每个用户想要的、最记得住的数字密码,比如八个八,多好记又多吉利啊……于是就有了“我可以容忍6位密码,但8位密码就别想了”的问题。
但是大家会说,现在群红包已经生成了,如果再自定义红包密码,不就又会出现同样的问题了吗?还是要做唯一性校验,看看是否有重复的密码。现在的情况好多了,为什么呢?第一,不是所有通过支付宝发红包的人都会分享到微信,这种情况下密码根本就不需要,直接分享到支付宝群里就可以了。第二,就算用户反复输入密码,密码也会自动发送到支付宝群里,密码都是重复的,不过我给支付宝留了后路啊!难道就没有一个系统可以自动生成唯一的数字密码输入吗(虽然很少很难找到,但是确实存在)……另外,用户反复输入中文密码的可能性,效率也不会太高。我的支付宝可以缩小密码唯一性验证的范围,只验证“进行中”状态的红包密码。已经结束过期的群红包是不会去验证的,因为已经没有意义了。那担心的同学就会问了,如果红包发出去了却没人认领怎么办?是不是就一直占位置了呢?我明确的告诉你不会的,不管是支付宝红包还是微信红包,都会设置一个相对的有效期,一旦红包过期,无人认领的红包余额会自动退回到你的账户中,并设置为无效状态(如果我没记错的话,支付宝群红包的有效期是生成后24小时内)。
那么,今天的如果这样,“把自定义密码放在第一位”的设计真的看上去不可行吗……
#插入话题#另外,关于支付宝红包密码还有一点:
既然支持自定义密码输入,那么最好在密码中做好敏感词汇的屏蔽工作……
有瑕疵,但也有亮点。今年的支付宝密码背景图支持任意更换,密码可以随意拖动,保证密码映衬在背景图上清晰可见,这就像是一个情感容器,但这种情感化的设计确实让人赏心悦目,用户会买账。不过馒头要提醒支付宝同仁们,既然允许用户随意更换密码背景图,就不要随意更换密码背景图,内容审核也一定要认真做,不然……你们懂的!
哦,是的,
我说的一切都错了。
作者信息:馒头(微信公众号),阿里巴巴产品经理,0.5年互联网产品设计经验。