都说「站在用户角度做产品」到底应该怎么站?

2020-05-26 15:02:09 +08:00
 mmrx

昨天公司群里讨论一个异常流的交互,小小的怼了一下产品。引发了我的这个问题。

都说要「站在用户的角度做产品」那现实中该怎么转换这个思维,尤其是对于程序员来说,感觉还是比较困难的。

这是发布到我的公众号里的 事情经过和我的一点思考 感兴趣的可以点进去看一下,觉得写的不错的话希望点个关注。

下面是整个事情的大概经过

事情的背景是这样。

在一个支付场景中,存在两种支付方式供用户选择,分别是支付宝和银行卡转账。其中银行卡转账是提供一个临时转账账户,由用户在银行 App 中输入这个临时账户进行手动转账。

联调过程中出现了这样一个异常流。

用户选择支付宝支付,应用请求公司的交易服务,获取了一个支付宝签名来调起支付宝 App 进行支付。但是在支付宝支付页面,没有完成最后的支付,返回了应用。此时用户再次选择支付宝支付,接口报错。

报错原因在于用户支付过程中,公司的交易服务产生了一个对应的支付单,但是在支付宝中用户未取消支付且退出支付流程,这个状态交易服务是监听不到的,因此出于保障用户利益的原因,为了避免出现超额支付的情况,这个交易单在几分钟内是处于「锁单」状态的,超时后会自动关闭这个交易单,用户才可以重新发起交易流程

产品在这种情景下,要求展示一句异常提示「订单支付中,请勿重复提交」。

当时在群里讨论,我提出了一个疑问,**用户在这样的情况下看到这句提示,不会感到迷惑么?**对此我得到的回答是:

这是通用提示,其他 App 也是这样做的。用户发起过支付,所以他应该是知道要再次在支付宝付款的。

我回复她:

所以优秀的应用总是与众不同的

我感觉一个异常提示不仅仅要告诉用户为什么出现了异常,更重要的是提供一种或者多种解决办法。

我受够了在使用某些应用的某些功能时,弹出一个莫名其妙的提示语,告诉我出问题了,功能流程进行不下去了,然后我也不知道怎么办,更难受的是我当时还需要用...不知道看到这里的你是否也有同样的感受...

上面这个事情很小,但是引出来一个标题的疑问,产品都这么不专业,作为开发的我们,怎么才能在日常开发中「站在用户角度」做功能?可能我是日常已经有这方面的吐槽,才会在这个场景下能轻易的「做用户」,但是遇到非日常场景或者不太会有代入感的业务场景下呢?

你们是怎么做的?

2754 次点击
所在节点    程序员
37 条回复
fengmumu
2020-05-26 17:56:38 +08:00
@mmrx 要是单条说,我觉得问题都不大,倒计时而已,你们既然有支付,那就有倒计时组件,问题不大, 时间的问题,前端做大二三十秒问题不大的,嗯算是一个思路吧,你给的哪个文字是真的长,而且咋说呢,支付宝带支付,是否要有微信带支付,这个两分钟是固定的吗。比如用户两分钟内每次进去都是一个提示,所以就偷个懒 搞个定时器。。。
luwies
2020-05-26 18:04:01 +08:00
我觉得要想办法 让第二次支付也是顺畅的完成支付流程
mmrx
2020-05-26 18:06:36 +08:00
@fengmumu 是的,你说的也是一个可以选择的方案。文案过长可能就不适合作为提示语来展示了。两分钟的限制应该只是我们交易服务自己定的一个时间。
mmrx
2020-05-26 18:08:15 +08:00
@luwies 没错,不管交互怎么搞,让用户顺利完成支付是最根本的目的
miaomia
2020-05-26 18:09:59 +08:00
这个场景不就是我点了个外卖,要付款的时候我不想要了,最终没有下单;这个时候在 APP 会生成一个待支付订单,提醒该订单未支付并直接跳转到待支付列表页吗?操作流程与页面提示都是为了让用户有更好的产品交互体验,你能对这个问题发出思考,我认为就已经站在用户角度思考了;但我觉得产品说“别的 APP 也是这样的”这个理由不太好,非得跟别的 APP 一样么(杠精本精~)
chamuyaye
2020-05-26 20:03:03 +08:00
我以前一个领导说的挺对的,就是把用户当个小白,你的产品功能越能被小白直接用的顺畅越好
fancy2020
2020-05-26 21:43:58 +08:00
@luwies 楼主不是已经说了吗,"出于保障用户利益的原因,为了避免出现超额支付的情况,这个交易单在几分钟内是处于「锁单」状态的,超时后会自动关闭这个交易单,用户才可以重新发起交易流程"
bagel
2020-05-26 21:59:36 +08:00
按照你说的所谓锁单,在这个时间窗口里,用户即不能提交新订单,也不能在你的 app 中看到旧订单并继续支付。那么这样的设计显然是有问题的。正确的设计,以饿了么点外卖为例,下单后,跳到支付宝不支付,回来能看到订单状态并且可以继续从饿了么跳到支付宝支付。注意是要在你的 app 里能看到并重新发起旧订单的支付,不能依赖用户在支付宝里去找这个旧订单,因为实际有可能是找不到的(比如切走后支付宝进程被系统清理)。

你的后台同事所谓的获取不到状态,跟这个问题没关系。真正有可能出现重复支付的是同时接有支付宝和微信支付这种情况。还是以饿了么为例,下单后选支付宝跳到支付宝拉起支付页面,此时不支付,回到饿了么重新选微信支付跳到微信拉起支付页面,支付完,然后切到支付宝,在已经拉起的支付页面完成支付。因为支付宝微信两家信息无法同步,会出现重复支付。这才是真正因为技术原因无法避免的重复支付。
barrysn
2020-05-26 22:04:27 +08:00
用户都是傻子,怎么着最傻瓜化 就怎么来。
feiandxs
2020-05-26 22:18:09 +08:00
有的话说着听听就行。

站在用户角度。

中国特色社会主义。

没有人比我更懂。

。。。听听就好。
pubby
2020-05-26 22:18:19 +08:00
设计成订单可以多次支付不就行了,发生多付就走自动退款。

一个 order 可以对应一组支付 /退款 trade

十年前单笔支付限额普遍较小,有时候大额订单就要支持多次小额支付的功能。
因为到账通知异步延迟,发生多付的情况还不少,多付部分自动退款,短信提醒,用户也不会抱怨啥。
PUBG98k
2020-05-26 23:16:56 +08:00
找一个不是程序员来提需求~
luwies
2020-05-27 09:13:45 +08:00
@fanchangyong 锁单这个流程说不定本身就是可以用别的方式去处理的,不一定要去锁单。像 @pubby 说的方式也是可以的吧
hbolive
2020-05-27 09:21:58 +08:00
感觉你们技术有问题吧,用了这么多支付 APP,支付过程随时取消,也没见说要锁单的呀。。
支付取消,生成支付订单为待支付状态,随时可以唤起支付。
如果重新下单,生成是另一张订单。。
先取消支付的订单,如果客户再支付,在你们看来是“重复”支付了,但在业务流程上,是没问题的。。

如果这个订单,只能支付(成功)一次,那确实得“锁单”。。

另外没大的问题,尽量听产品的话。。
mmrx
2020-05-27 09:35:05 +08:00
@hbolive 技术是否有问题我判断不来,因为交易这块逻辑本身复杂度高,我也只是个客户端开发。但是我感觉你和上面的几位说的都有道理。至于「没有大的问题尽量听产品的话」,这个其实也要看这个产品靠不靠谱,大佬自然没说的,不仅要听,还得琢磨为什么这样做,能学到点东西;如果相反,我感觉趁早把这个需求驳回或者砍掉,因为实际中因为产品没想清楚业务就匆忙上马,最后效果不佳甚至发布前被砍掉的情况我也遇到过几次。
hbolive
2020-05-27 09:59:15 +08:00
@mmrx 回到话题本身,感觉这个提示不是很友好,本质就是没按你们的流程走完,于是你们就甩锅似的说:能怎么办?我也很无奈啊。。
然后留下用户在那一脸懵逼,还得摸索着等超时关闭后重新下单支付。。

总之不太友好。。
SwimmingDragon
2020-05-27 13:24:11 +08:00
@mmrx 我也是一个后端面,我以前遇到这个问题我都是直接修改对支付宝方的支付订单号,可以直接重新支付的,可能是我想的简单了一些

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/675618

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX