微信是一款成功的产品,除了我们津津乐道的日活、下载量、用户数,以及“用完即走””克制”等殿堂级的产品理念,它还有一些低调的精妙设计。
最近我发现微信在一些地方的贴心设计。
1、在没有网的情况下,用户“可以”在微信朋友圈点赞、评论。
为什么“可以”上了引号呢?本质上来说,用户并不是真的点赞or评论成功了。而是基于数据的异步传输实现的。
举例:用户A手机没有网,这种情况下他在朋友圈看到B的一条状态,点赞了,并且用户A看到自己点赞成功了,但用户B这时候在他的朋友圈是看不到A为他点的赞的。当用户A有网之后,用户B才能看到A为他点的赞。
猜想:数据传输过程:用户A在用户B的状态下点赞,点赞对应的是布尔值0或者1,点赞后这个布尔值改变成对应的状态数值,存储在客户端的某个存储系统or数据表中,当有网的时候,这个数值才会传送到服务端,服务端接受到数据,进行对应的展示。
我的思考:这种方式的设计,让用户能够在第一时间接受到反馈,在心理上有一种满足感和可控感。
我们在开展工作的时候,提出需求希望能够收到反馈,这样才能够对整个项目进行把控;在工作中,当我们向别人说话时,如果对方没有一点反应,我们会很受挫;而游戏之所以能够让人沉溺,有很重要的一个原因是游戏有一套良好的反馈体系,能够不断地刺激玩家。所以在做产品设计的时候,反馈很重要,让用户及时知道当前的状态很重要(比如进度条的设计就是通过给予用户反馈让用户能够具有一定的可控感)。
2、在网络情况不好的情况下,微信付款的功能很可以。
今天晚上回家去超市买东西,结账的时候使用微信扫描商家的二维码,但是由于网络问题,一直无法扫出付款页面。后来收银员自己使用收款功能扫我的付款二维码,收银员显示扫描成功,过了一会儿在网络比较好的情况,我收到了支付成功的提示。
猜想收银员使用收款功能扫我的付款二维码,就相当于我们平时刷银行卡一样,访问银行(这个银行可以是银行机构,也可以是微信或支付宝,取决于支付的是银行卡里的钱还是零钱)的服务;而扫描商家的二维码支付则分为以下几步:(1)访问付款页面;(2)输入支付金额并提交;(3)提交后访问银行的服务。在步骤(1)的时候,就有可能出现访问障碍,刷不出付款页面的问题。所以采用第二种支付方式在网络不好的情况下容易出现支付不了的问题。
对于第一种付款方式,主要的支付流程是:收银员向收银系统下单-下单成功—收银员扫描用户付款二维码—商户系统向支付系统(微信、支付宝)发起支付请求—支付系统处理支付请求—回执支付成功给商户系统—商户系统回执“支付成功”给收银员系统。在这个过程中,进行数据处理的主要是商户系统和支付系统,对于用户是否有没有网则没有硬性要求。
拓展:查看了一些文章,大概了解到我们平时点击付款时出现的二维码有两种,一种是离线码,一种是在线码。离线码是:用户登录后,服务端通过可信网络向用户客户端发送一个种子数据(每个客户的种子数据唯一,换用户登录后销毁原种子,重新下载种子)本地保存,当用户点击【付款】时,客户端利用这个种子数据+时间戳+一套安全算法可以生成一串数字,即离线码。在线码是:用户目前是登录钱包的状态,只要点击【付款】按钮,客户端就向服务端申请一个针对这个客户账户的支付凭证码并展现到客户手机上。
我的思考:通过商家扫描用户付款二维码这种方式,可以在网络不好的情况下进行支付,让支付更高效、更便捷。
我的疑问:在什么情况下生成的是在线码,什么情况下生成的是离线码?
对于一些问题的思考深度有待加强,欢迎大家和我探讨!