从0开始,我做了个扫码支付
新零售模式在线下门店,笔者想通过扫码的方式让用户使用积分,电子钱包、电子储值卡等其他类型的有价虚拟币逻辑相同。
京东的“京豆”,淘宝的“淘金币”本质是一种积分,过去大家都是建“积分商城”。用户通过消费、完善信息等操作获得积分,在积分商城消费积分。
积分商城可以增加用户黏性,但无法通过积分商城提高复购、客单等。所以越来越多的项目开始使用类似京东和淘宝的方式,积分可以抵扣部分金额。
项目背景
积分可抵扣金额,那么积分就是一种支付方式。在线上渠道下单扣减相应积分即可(涉及组合收银等逻辑)。而新零售项目还需要考虑用户在线下门店如何方便、快捷、安全的使用积分。
我们先后做过两个版本:
- V1.0 “支付密码”,每次消费积分都需填写支付密码。
- 门店配备密码键盘,使用积分时用户自行录入支付密码。
“货到付款”场景,签收时用户在“配送App”(TMS)录入支付密码。
V2.0 将“支付密码”改为“短信验证码”。
在门店使用积分时,收银员询问用户验证码 并将验证码录入系统。
“货到付款”场景,签收时用户将验证码告知配送员,配送员在“配送App”(TMS)录入验证码。
到2.0基本上已经解决需求,但多少还有一些问题。于是我们想到了终极解决方案:扫码支付。
一、扫码支付方式
扫码支付有两种方式:
1. 门店扫顾客码(顾客被扫)
用户出示付款码 → 门店\配送App扫码 → 录入支付密码(超过安全限额)→ 扣款,显示支付结果
门店扫顾客码
2. 顾客扫门店码(顾客主扫)
用户打开扫一扫 → 门店出示收款码→ 用户扫码,填写支付金额 → 录入支付密码 → 扣款,显示支付结果
顾客扫门店码
第2种方式最后我们舍弃了,主因有:
- 需要用户操作步骤多:扫码,填写金额,录入支付密码。第1种方式,用户只需要出示付款码即可。(超过安全限额才需要录入密码)
- 支付完成后,店员需要确认支付结果。(小商家都是通过蓝牙音响报音确认)
支付宝和微信作为一个支付工具,需要考虑小商家没有技术研发能力的情况,所以需要第2种方式。
二、功能
门店扫顾客码需要各系统有哪些功能支持?
1. App、小程序等用户端
用户端功能
- 在用户端出示付款码:例如支付宝首页的“付款”。为保证支付码安全,付款码会定时失效,需要刷新。这样被拍下来或者截图都是无效的;
- 用户出示付款码被门店扫码后,如果超过免密支付安全额,需要录入密码或短信验证码。免密支付安全额可以用户自行设定,也可以系统统一设定;
- 支付结果页,告知用户支付成功还是失败。支付密码错误、余额不足都是在支付时提醒,支付失败一般是系统问题导致;
- 支付记录,或者称为消费记录。用户可以参看每一笔的支付金额、时间等信息。
2. 收银终端(门店、配送App)
- 记录付款码信息:通过扫码枪或者配送场景PDA设备扫付款后,读取付款码信息;
- 将付款码信息传中台,中台判断付款码的有效性。如果付款码无效则提示无效信息;
- 显示支付结果,用户录入支付密码后显示中台返回的支付结果,如果支付失败还需显示失败原因。
3. 中台
(1)生成付款码。用户打开付款码页面时,要生成并显示付款码,条形码或者二维码。为保证支付安全,付款码会有失效状态。用户刷新后,中台重新生成付款码。
(2)在门店收银系统 或 配送App扫码后,将订单信息和码信息通过接口传到中台。中台需要验证用户的付款码是否有效 —— 是否是有效的付款码、是否过期、是否已经被扫。
(3)扣积分:
中台先判断用户支付的积分额是否超过了免密支付安全限额:如果未超过限额则扣减积分、修改付款码被扫状态并将支付结果反馈给前端;如果超过免密支付安全限额,则需要用户录入支付密码(或短信验证码)。
用户录入支付密码后前端传给中台,中台判断支付密码(或短信验证码)是否正确:密码正确则扣减积分、修改付款码被扫状态并将支付结果反馈给前端;密码错误则提示用户“密码不正确”,用户重新录入密码。(此处需要有密码找回 和 密码录入次数限制功能)
(4)返回支付结果,支付成功或者失败。
支付失败场景:付款码错误(无效、过期、已被扫)、积分余额不足、其他系统原因。
4. 功能细节完善后的思维导图
扫码支付各系统功能
三、流程
1. 付款码是什么,怎么生成?
我们不知道支付宝和微信是怎么解决这个问题的,我们自己想了一个方案:
- 系统给每个用户都生成一个积分账户,积分账户和用户会员号绑定。付款其实就是系统扣减对应账户积分的过程;
- 如果直接使用积分账户生成付款码,首先不安全,其次付款码是定时变化的而积分账户并不变。所以需要把积分账户做一个转化,转化为一个中间码。(中间码的生成规则就随意了:可以积分账户+算法,也可以直接生成随机数);
- 将中间码和积分账户关联,这样积分账户不变,只需要定时生成一个中间码和积分账户关联就可以了;
- 中间码的有效时间为1分钟,过期后重新生成一个有效期为1分钟的中间码;
- 系统扫码后读取的是中间码,中台根据中间码找到积分账户扣减对应积分。
2. 流程图
流程在梳理功能过程图基本都讲完了,不多说上图:
扫码支付-流程
本文由 @杰记 原创发布于人人都是产品经理,未经作者许可,禁止转载。
题图来自Unsplash,基于CC0协议。
作者暂无likerid, 赞赏暂由本网站代持,当作者有likerid后会全部转账给作者(我们会尽力而为)。Tips: Until now, everytime you want to store your article, we will help you store it in Filecoin network. In the future, you can store it in Filecoin network using your own filecoin.
Support author:
Author's Filecoin address:
Or you can use Likecoin to support author: