新零售模式在线下门店,笔者想通过扫码的方式让用户使用积分,电子钱包、电子储值卡等其他类型的有价虚拟币逻辑相同。
京东的“京豆”,淘宝的“淘金币”本质是一种积分,过去大家都是建“积分商城”。用户通过消费、完善信息等操作获得积分,在积分商城消费积分。
积分商城可以增加用户黏性,但无法通过积分商城提高复购、客单等。所以越来越多的项目开始使用类似京东和淘宝的方式,积分可以抵扣部分金额。
项目背景
积分可抵扣金额,那么积分就是一种支付方式。在线上渠道下单扣减相应积分即可(涉及组合收银等逻辑)。而新零售项目还需要考虑用户在线下门店如何方便、快捷、安全的使用积分。
我们先后做过两个版本:
“货到付款”场景,签收时用户在“配送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. 功能细节完善后的思维导图
扫码支付各系统功能
三、流程
1. 付款码是什么,怎么生成?
我们不知道支付宝和微信是怎么解决这个问题的,我们自己想了一个方案:
系统给每个用户都生成一个积分账户,积分账户和用户会员号绑定。付款其实就是系统扣减对应账户积分的过程;
如果直接使用积分账户生成付款码,首先不安全,其次付款码是定时变化的而积分账户并不变。所以需要把积分账户做一个转化,转化为一个中间码。(中间码的生成规则就随意了:可以积分账户+算法,也可以直接生成随机数);
将中间码和积分账户关联,这样积分账户不变,只需要定时生成一个中间码和积分账户关联就可以了;
中间码的有效时间为1分钟,过期后重新生成一个有效期为1分钟的中间码;
系统扫码后读取的是中间码,中台根据中间码找到积分账户扣减对应积分。
2. 流程图
流程在梳理功能过程图基本都讲完了,不多说上图:
扫码支付-流程