一种不同网络状态下主动选择最优付款码的支付方案设计

作者: 高佩

一种不同网络状态下主动选择最优付款码的支付方案设计0

关键词:移动支付;二维码支付;在线支付;脱机码;弱网络判断

0 引言

随着科技的日新月异,移动支付发展迅猛,我国2021年第三方移动支付规模为288.1万亿元,近三年保持高速增长,预计2025年该市场规模扩大为500万亿元[1]。移动支付已经深入人们生活的各个方面,二维码支付作为移动支付的主要方式发挥着举足轻重的作用。二维码支付主要包括二维码主扫支付和付款码支付等方式。付款码支付主要用于线下商户付款,如超市排队扫码支付、地铁扫码过闸等场景[2],由于其支付的快捷性、便利性,深受人们喜爱。目前付款码支付主要是在联机状况下进行,在网络状况比较差的情况下无法快速生成付款码进行支付,造成用户支付等待或者取消支付交易等问题。为此本文提出了一种不同网络状态下主动选择最优付款码的支付方案,以实现不同网络环境下快速生成付款码进行支付,为用户带来快速、安全、便捷的支付体验。

1 现有技术方案及问题

1.1 当前付款码支付实现方法

目前付款码支付主要采取付款时直接联机发起请求生成付款码,并展示给商户进行扫码支付,经过支付验证(短信验证码、支付密码以及生物特征验证)之后实时获取支付结果。这种方式的优点是用户的客户端和服务器时刻保持通信,在线验证并结合营销活动,丰富支付场景,保障支付安全,同时用户可以实时获取到支付结果,具有较好的用户交互体验。

1.2 现有技术方案存在的问题

现有付款码支付方式虽然有其自身优势,但是也存在如下问题:

1) 在网络比较差的情况下,无法快速生成付款码进行支付。目前很多商场网络状况不是很好,用户客户端无法与服务器建立有效连接,导致用户无法生成付款码或生成付款码缓慢,影响用户支付。

2) 网络请求多,耗费用户流量,同时造成后台压力。支付过程中用户客户端需要与服务器建立连接,不断发送网络请求,实时获取支付状态,浪费用户流量。同时,在营销活动期间用户集中使用付款码支付时,容易造成服务器压力甚至宕机。

3) 无法针对不同网络状况主动选择最优的付款码支付方式。目前很多应用未对用户终端网络状态进行主动侦测和评估,进而无法实现综合考虑安全性和高效性等因素,在不同网络状态下及时为用户切换为最优的付款码支付方式,导致用户体验不佳。

2 不同网络状态下主动选择最优付款码的支付方案

鉴于目前付款码支付方案存在的问题,本文将脱机码算法应用于付款码支付,提出了一种不同网络状态下主动选择最优付款码的支付方案。

2.1 方案总体设计

该方案通过发送socket包的方式进行弱网络检测,能够实时获取用户移动设备目前网络状况,当用户打开付款码时,若此时网络状态良好则优先发起联机付款码请求,应答成功则直接展示联机码;若5s网络应答还未成功,为减少用户等待时间,优先展示脱机码。当用户打开付款码时,若网络状态不佳则优先展示脱机码。这样能够保证用户在不同网络状况下,综合考虑安全性和高效性等因素,快速生成付款码进行支付,减少等待时间,提升用户支付体验[3]。方案中付款码支付业务主要涉及弱网络检测、联机码在线支付及脱机码离线支付等模块,方案总体框架图如图1 所示。

2.2 付款码在线支付过程

付款码在线支付要求用户客户端保持网络在线状态,当用户点击付款码时客户端发起网络请求,根据服务器应答判断当前用户是否满足实名、设置支付密码、有可支付卡等条件,若满足相应支付条件则直接生成联机码并展示给商户,否则跳转至相应引导流程处理。在展示付款码过程中,客户端会不断发送请求,查询付款码是否被扫码,若已经被扫则根据服务器返回的验证要素,要求用户输入短信验证码、支付密码或者生物特征要素进行支付验证[4]。当所有支付验证要素验证通过则不断发送请求轮询支付结果,查询成功则直接展示交易结果页。付款码在线支付具体流程如图3所示。

付款码在线支付通过客户端与服务器不断通信交互,实现快速申码—在线支付验证—展示交易结果的支付流程,具有较高的安全性和良好的用户支付体验。

2.3 付款码离线支付过程

在用户客户端断网或网络比较差的情况下,通过弱网络检测机制侦测出当前网络状态,若判断为弱网络,则生成脱机码进行离线支付。脱机码是客户端将从服务器预先获取的种子信息通过一系列算法运算生成的脱机付款码,当用户进行支付被扫时,将相应脱机码传递给后台,后台将其与该用户对应时间窗口的脱机码列表(服务器运用与客户端相同的算法将种子生成相应的脱机码列表)进行比对,有相同脱机码则验证通过,并将支付成功结果通知商户[5]。这样就实现了在用户移动设备网络状态不佳或无网络的情况下进行支付,满足用户离线支付的需求。

1) 种子申请及脱机码生成过程

客户端在特定时机(启动、前后台切换等)检测本地种子是否过期,过期则发起请求申请更新种子信息。获取到种子信息后将其拆分为不同的属性文件进行加密存储,当需要使用脱机码时,客户端读取属性文件经过一系列格式转换、OTP算法及FPE算法最终生成脱机码用于用户离线支付。具体流程见图4。

2) 脱机码文件存储方式及文件内容

客户端发起申请种子的请求,后台以列表的形式返回种子列表(包含卡号掩码、种子、混淆因子及种子有效期等若干属性)。客户端获取到种子列表后将其中的属性打散分开存储到多个不同文件,每个属性文件只存储其中的若干个属性,本地每个种子文件中仅维护各属性的一个数组,并不保存种子列表的具体结构。所有文件存储到文件系统特定目录中,每次退出登录都会删除相应目录及文件,确保种子文件数据安全。

3) 脱机码文件加密方式及密钥安全

每个属性文件分别采用不同的对称密钥(AES) 进行加密,其中对称加密密钥为用户标识与本地密钥组合而成,做到不同用户不同密钥,以避免单个用户密钥泄露影响其他用户数据安全。每个属性文件有单独一套密钥,单套密钥泄露并不会影响数据安全。每套密钥在C++代码中保存,进行分段混淆,存储在不同位置,并打包成静态包.a文件导入工程中,避免被破解风险。

4) 种子列表组装及脱机码生成使用

每次需要使用种子时,从本地读取各个属性文件,并根据相应规则进行组装、解密,以得到完整的种子列表。获取到相应的种子及种子要素之后,将其进行一系列格式转换并传入OTP算法,最终再通过FPE 算法生成脱机码,展示给用户用于离线支付。

2.4 付款码支付安全性保障

付款码在线支付时客户端能够根据后台指定的风控级别分别采用免密/密码/密码+短信/生物特征验证等不同级别的校验方式,进行实时风控;付款码离线支付时对种子属性文件进行拆分,并使用对称密钥(AES) 进行加密和混淆,避免本地种子属性文件外泄,且不同用户种子文件无法共用,通过脱机码算法生成的付款码在有效期内仅可支付一次,无法重复使用。同时后台能够根据不同地区和用户级别对付款码支付功能进行灰度,并对用户当日交易金额和交易笔数进行限制,避免异常交易带来的风险,从而保证付款码支付更加安全可靠。

3 结束语

基于安全性和高效性的原则,本文提出了一种不同网络状态下主动选择最优付款码的支付方案。该方案将脱机码算法运用于付款码支付场景,由本地预获取的种子信息生成脱机付款码,进行离线支付。同时通过弱网络检测机制侦测出当前用户移动设备的网络状态,综合安全、高效、便捷的原则,为用户快速自动切换联机码或脱机码,减少用户等待时间,优化支付流程,保障支付安全,为用户提供更好的支付体验。

上一篇 点击页面呼出菜单 下一篇