光二维码支付装置、系统及方法与流程

文档序号:13388435阅读:441来源:国知局
光二维码支付装置、系统及方法与流程

本发明涉及电子支付技术领域,尤其涉及一种光二维码支付装置、系统及方法。



背景技术:

随着网络支付的普及,移动支付成为许多市民特别是年轻人所热衷的支付方式,不论是超市柜台付款、菜场买菜,还是车站买票、商场购物,人们只需拿出手机,对着收款方二维码扫一扫即可完成扫码支付,操作过程简单便捷。但由于二维码制作门槛低且易被窃取,因此其存在着信息被篡改或伪造的风险,如不法分子趁商家不注意,在商家的收款二维码上贴上自己事先准备好的二维码,即可在家坐等收钱,造成商家极大的财产损失。

针对上述情况,目前一般的应对方法是要求顾客在支付之前和商家进行面对面确认,确认无误后再完成支付,由于支付二维码极易被恶意替换,因此面对面确认收款方信息后支付再有利于保证支付的安全性,避免不必要的财产损失。然而,这种支付方式存在以下缺点:

1)、安全性能不高。

面对面确认收款方信息虽然令支付安全性得到保证,但无疑会浪费顾客和商户双方的时间,当顾客人数过多时,繁琐的验证过程不免显得有点力不从心,而且此时商户也无法保证每次验证的准确性,这对于散客较多且手机支付应用频繁的场景来说十分不便。

2)、便捷性不强。

由于目前支付平台呈现出多样化,支付宝、微信支付等多种支付手段各自对应不同的支付二维码,因此商家必须同时提供给顾客多个平台的二维码,且顾客需要对应打开不同的app才能完成扫码,操作略显不便。

3)、不具备离线支付功能。

客户在进行二维码扫码时,也有可能遇到网络不畅的情况,目前的二维码必须通过互联网实时验证后才能进行支付,一旦客户手机离线则无法完成支付,这种情况将会为收付款双方造成了某些不必要的麻烦。



技术实现要素:

本发明实施例所要解决的技术问题在于,提供一种光二维码支付装置、系统及方法,以使提高安全性的同时提高便捷性以及能够实现离线支付。

为了解决上述技术问题,本发明实施例提出了一种光二维码支付装置,包括显示屏、led背光板、光传感器及处理器,其中,显示屏用于即时显示二维码;led背光板用于发送与二维码校验数据对应的可见光信号;光传感器用于接收付款方通过可见光发送的支付身份信息;处理器与显示屏、led背光板、光传感器电连接,所述处理器将二维码发送至显示屏显示并将二维码里嵌入的有效数据采用md5算法进行加密,对加密后的数据采用crc校验得到对应的校验位,再对校验位进行曼切斯特编码得到编码后的校验数据,并驱动led背光板发出可见光,通过可见光发送所述编码后的校验数据。

相应地,本发明实施例还提供了一种光二维码支付系统,包括上述的光二维码支付装置,还包括移动终端及计算机;所述光二维码支付装置通过串口与计算机连接,接收计算机即时生成的用于收款的二维码;

所述移动终端包括摄像头及闪光灯,所述摄像头的帧速率小于所述led背光板发送可见光的开关频率;所述移动终端通过摄像头接收led背光板发送的光信号及扫描显示屏显示的二维码,并对光信号进行解调及数据恢复,将恢复得到的校验数据与扫描二维码所得的数据进行比对,二者一致时验证通过,完成支付。

相应地,本发明实施例还提供了一种光二维码支付方法,应用于上述的光二维码支付系统,包括:

步骤1:计算机根据收款方的输入生成对应的二维码,并发送至光二维码支付装置;

步骤2:光二维码支付装置通过显示屏显示二维码,并将二维码里嵌入的有效数据采用md5算法进行加密,然后对加密后的数据采用crc校验得到对应的校验位,再对校验位进行曼切斯特编码,最后驱动led背光板发光,通过可见光发送经过编码的校验位数据;

步骤3:移动终端通过摄像头接收可见光信号同时扫描二维码,并对可见光信号进行解调及数据恢复,将恢复得到的数据与扫描二维码所得的数据进行比对,二者一致时验证通过,连接对应的支付平台完成支付。

本发明实施例通过提出一种光二维码支付装置、系统及方法,所述装置包括显示屏、led背光板、光传感器及处理器,通过采用可见光信号与二维码数据进行支付信息的双重认证,有效地降低了二维码被复制、被伪造的风险,进而提升了移动支付的安全性、便捷性、离线性。

附图说明

图1是本发明实施例的光二维码支付装置的结构示意图。

图2是本发明实施例的光二维码支付系统的结构示意图。

图3是本发明实施例的光二维码支付方法的流程示意图。

图4是本发明实施例的数据填充过程示意图。

图5是本发明实施例的待散列的数据的示意图。

图6是本发明实施例的输入分块的示意图。

图7是本发明实施例的每一轮中寄存器的变化示意图。

图8是本发明实施例的某一单帧条纹图像的示意图。

图9是本发明实施例的灰度数据提取原理图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本发明作进一步详细说明。

本发明实施例中若有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。

另外,在本发明中若涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。

请参照图1,本发明实施例的光二维码支付装置主要包括显示屏、led背光板、光传感器及处理器。

显示屏用于即时显示收款的二维码。led背光板用于发送包含与二维码对应的校验数据的可见光信号。光传感器用于接收付款方通过可见光发送的支付身份信息。处理器与显示屏、led背光板、光传感器电连接,处理器将二维码发送至显示屏显示并将二维码里嵌入的有效数据采用md5(message-digestalgorithm5,信息-摘要算法)算法进行加密,对加密后的数据采用crc(cyclicalredundancycheck,循环冗余码校验)校验得到对应的校验位,再对校验位进行曼切斯特编码得到编码后的校验数据,并驱动led背光板发出可见光,通过可见光发送所述编码后的校验数据。

作为一种实施方式,所述光传感器为太阳能电池板、光电二极管、光敏电阻中的一种。优选地,光传感器为太阳能电池板,在接收信号的同时还为光二维码支付装置供电。

请参照图2,本发明实施例的光二维码支付系统包括光二维码支付装置、移动终端及计算机。

光二维码支付装置通过串口与计算机连接,接收计算机在收到收款方设置的金额后即时生成的用于收款的二维码。

移动终端包括摄像头及闪光灯,优选地,摄像头的帧速率小于所述led背光板发送可见光的开关频率。移动终端通过摄像头接收led背光板发送的光信号及扫描显示屏显示的二维码,并对光信号进行解调及数据恢复,将恢复得到的校验数据与扫描二维码所得的数据进行比对,二者一致时验证通过,完成支付。

请参照图3,本发明实施例的光二维码支付方法,应用于光二维码支付系统,包括:

步骤1:计算机根据收款方的输入生成对应的二维码,并发送至光二维码支付装置。

步骤2:光二维码支付装置通过显示屏显示二维码,并将二维码里嵌入的有效数据采用md5算法进行加密,然后对加密后的数据采用crc校验得到对应的校验位,再对校验位进行曼切斯特编码,最后驱动led背光板发光,通过可见光发送经过编码的校验位数据。

步骤3:移动终端通过摄像头接收可见光信号同时扫描二维码,并对可见光信号进行解调及数据恢复,将恢复得到的数据与扫描二维码所得的数据进行比对,二者一致时验证通过,连接对应的支付平台完成支付。led背光板发送可见光的开关频率大于摄像头的帧速率,则移动终端可以通过摄像头在同一帧图片中捕捉到明暗光条纹,明暗光条纹则作为光信号传输中“0”“1”比特判别的依据:当led背光板的led处于“开”状态时,扫描行呈现亮条纹;反之当led背光板的led处于“关”状态时,扫描行呈现暗条纹;本发明实施例通过在同一帧内捕捉明暗条纹,识别出光信号中携带的信息。

本发明实施例的光二维码支付装置中采用led背光板来实现可见光信号的大范围均匀发送,二维码内的有效数据经过加密、校验后得到校验数据,校验数据通过处理器被调制到led背光板的led上,移动终端的摄像头对准光发光区域拍照时,只要调整到合适参数(高快门速度,高感光度)并采用预设的光信号解调算法,则可根据接收到的图像条纹信息解调出发送的原始数据。

本发明实施例在验证通过,连接对应的支付平台完成支付。付款方只需扫码显示屏显示的二维码,移动终端即可根据识别到的支付信息直接跳转到对应的支付平台,免去用户打开不同支付平台的繁琐操作。

移动终端扫描二维码后,移动终端(对应的app)识别出该二维码是微信支付二维码还是支付宝二维码后接入对应平台实现付款。例如,接入微信支付sdk首先需要:①微信支付的appid;②微信支付依赖包——libammsdk.jar;③一个activity类——wxpayentryactivity。微信接入操作步骤简述为:①点击支付的时候创建订单,获取订单号ordernumber(或者在需要获取订单号的时候获取)②通过价格和ordernumber请求微信返回的参数,以及调起支付页面。例如,接入支付宝开放平台首先在平台申请专门的支付功能,类似微信的接入流程,先拿到价格和订单号去请求支付的地址,然后用参数回调支付即可。

作为一种实施方式,步骤3包括离线支付子步骤:移动终端无法连接网络时,将对应的支付平台授权信用额度的付款方身份信息通过闪光灯进行发送;光二维码支付装置通过光传感器接收并识别闪光灯发送的光信号,将识别出付款方身份信息发送至计算机;计算机连接对应的支付平台,完成收款并显示完成支付的信息;移动终端连接网络时,连接对应的支付平台支付对应的交易金额,完成支付过程。例如,在付款方扫描光二维码并验证通过后,付款方在移动终端上选择确认付费,此时移动终端将其身份信息(如第三方支付平台授权信用额度的支付宝或微信支付id)用闪光灯发送出来,光二维码支付装置通过光传感器接收闪光灯信号并将识别出付款方身份信息发送至计算机,计算机连接对应的第三方支付平台,完成收款,如此收付款双方则可以在无网络情况下实现双向的支付信息认证。此时依赖支付平台提供的小型信贷服务,当该用户信用额度达到支付平台规定的标准时授权该用户,支付平台将为此次消费先行垫付费用,一段时间后当用户网络条件畅通后可再偿还此费用,解决了无网络支付环境时的交易困难。

作为一种实施方式,步骤2中采用如下子步骤进行加密:

将原始数据进行填充,使其字节长度对512求余数的结果等于448,所述原始数据为二维码里嵌入的有效数据;计算出所述原始数据的字节长度,并将所述长度加进填充后数据的末尾,得到待散列的数据;将待散列的数据分成多个512位的块;初始化md5算法中的四个链接变量,分别记为a、b、c、d;将所述512位的块进行md5算法的循环运算,得到128位输出为a、b、c和d的级联即128位固定长度数据,其中,a为低位,d为高位,低字节始于a,高字节终于d。

加密示例:1、填充

在md5算法中,首先需要将原始数据进行填充,使其位长对512求余后的结果等于448,即使其位长对512求余后的结果等于448,也同样进行填充;因此,原始数据的位长被扩展为n*512+448,其中,n为零或正整数,填充过程如所示。扩展后原始数据的总长度为512的倍数减去长64位,例如:可以是448位(448=512-64)或960位(960=[2*512]-64)或1472(1472=[3*512]-64)等;填充总是相加的,即使原始数据是512的倍数。

2、添加长度

在增加填充位之后,开始计算原始数据的字节原始长度,将长度加进填充后数据的末尾。例如,如果原始数据是1000位,则去填充472位,把原始数据变成比512的倍数(即1536)少64位,但长度是填充位之前的长度(即1000),不是1472。原始数据的长度是一个64位的值,添加到填充之后的数据的末尾,如所示;此外,如果原始数据的长度超过了264位(由于数据过长,64位无法表示),只用长度的低64位。此时的原始数据长度是512的倍数,即变成待散列的数据。

3、将输入分成512位的块

将输入分成512位的块,如所示。

4、初始化四个链接变量

初始化四个链接变量,分别称之为a、b、c、d,a、b、c、d都是32位的数字,所述链接变量的初始十六进制数值如表1所示,低字节在前。

表1:a、b、c、d的初始连接变量

5、块处理

初始化后,消息中多个512位块进行循环运算,其流程如下:

(1)将四个链接变量复制到四个变量a、b、c、d中,使a=a,b=b,c=c,d=d。

(2)将当前512位块分解成16个子块,每个子块为32位,如图5所示。

(3)主循环一共有四轮,每一轮处理一个块中的16个子块。每一轮的输入如下:(a)16个子块;(b)变量a、b、c、d;(c)常量t。

每一轮输出的中间和最终结果都复制到寄存器a、b、c、d中(每一轮有16个寄存器),如图7所示。

①先对b,c,d进行一次非线性的函数运算,此运算在四轮中都不同。

②把变量a加入第1步的输出中。

③把消息子块m[i]加入第2步的输出中。

④把常量t[i]加入第3步输出中。

⑤将第4步的输出循环向左移s位。

⑥把变量b加入第5步输出中。

⑦下一步的新a、b、c、d则是第6步的输出。

四轮运算中采用以下四个线性函数进行计算:

f(x,y,z)=(x&y)|((~x)&z)

g(x,y,z)=(x&z)|(y&(~z))

h(x,y,z)=x^y^z

i(x,y,z)=y^(x|(~z));

其中,&表示与,|表示或,~表示非,^表示异或。

所述四个线性函数满足以下条件:如果x、y、z的对应位都是均匀和独立的,那么得出结果之后的每一位也都是均匀和独立的,函数f是通过逐位方式进行操作;如果x,那么y,否则z,函数h是按逐位奇偶进行操作。

设消息的第i个子分组(从0到15)由mi来表示,<<<s则表示循环向左移s位,则四种操作分别为:

ff(a,b,c,d,mi,s,ti)表示a=b+(a+(f(b,c,d)+mi+ti)<<<s);

gg(a,b,c,d,mi,s,ti)表示a=b+(a+(g(b,c,d)+mi+ti)<<<s);

hh(a,b,c,d,mi,s,ti)表示a=b+(a+(h(b,c,d)+mi+ti)<<<s);

ii(a,b,c,d,mi,s,ti)表示a=b+(a+(i(b,c,d)+mi+ti)<<<s)。

四轮(即64步)运算中四种操作的取值见表2。

表2:md5算法四轮运算表

上述操作完成后,将a,b,c,d分别加上a,b,c,d,然后用下一分组的数据继续运行算法,最后md5算法产生128位输出为a,b,c,d的级联即128位固定长度数据,其中,a为低位,d为高位,低字节始于a,高字节终于d,完成md5算法的加密处理。

作为一种实施方式,步骤2中采用如下子步骤获取校验码:

在加密得到k位信息码后再拼接r位的校验码,整个编码长度为n位,n-k=r;根据crc码的生成多项式g(x)生成对应k位信息码的校验码。在k位信息码后再拼接r位的校验码,整个编码长度为n位,因此,又称(n,k)码;对于一个给定的(n,k)码,可以证明存在一个最高次幂为n-k=r的多项式g(x)。根据g(x)可以生成k位信息的校验码,而g(x)叫做这个crc码的生成多项式。校验码的具体生成过程为:假设要发送的信息用多项式c(x)表示,将c(x)左移r位(可表示成c(x)*2r),这样c(x)的右边就会空出r位作为校验码的位置。用c(x)*2r除以生成多项式g(x)得到的余数就是校验码。任意一个由二进制位串组成的代码都可以和一个系数仅为‘0’和‘1’取值的多项式一一对应。此处可以选用16位crc码为1101110010011111,故其对应生成多项式g(x)=x15+x14+x12+x11+x10+x7+x4+x3+x2+x+1。md5加密后的128位数据作为crc的信息码c(x),根据生成多项式g(x)对应可以得到15位余式,即为crc生成的校验码。

作为一种实施方式,步骤3中采用如下子步骤解调可见光信号及恢复数据:

初始化摄像头拍摄的图像,并将图像转为灰度图像;

读取灰度图像,获取灰度图像的亮度信息;

采用自适应直方图均衡方法使灰度图像的灰度均匀分布,然后对每行像素灰度值进行求和;

设置对应的阈值门限,从灰度图像中获取二值图像,消除灰度值噪声;

设置滑动窗口寻找数据帧头,提取数据并进行判决;

对提取的有效数据进行曼切斯特解码,恢复得到光二维码支付装置通过可见光发送的原始数据。

光信号解调示例:移动终端采用三星galaxys9智能手机进行光信号接收,如图8所示为拍摄的某一帧条纹图像。在将图像转换为灰度图像后,我们首先对图像进行一定的预处理,采用自适应直方图均衡方法使图像灰度分布更加均匀;其后,对每行像素灰度值求和,由于原图像分辨率为4032*3024,因此每行求和后可得3024个灰度和值;而后对3024个灰度和值进行二项式拟合,灰度值和值及二项式拟合结果如图9(a)所示,根据二项式拟合结果,对灰度数据进行分段归一化;最后采用53平滑滤波器对信号进行平滑后判决,可得到判决后的数据如图9(b)所示。对提取出的数据进行曼切斯特解码,恢复得到光二维码支付装置通过可见光发送的原始数据。

本发明实施例具备如下技术效果:

1)、通过采用可见光信号与二维码相互验证的方法,增强了手机支付的安全性;

2)、可见光信号和二维码通过校验后本发明实施例可自动判别并跳转到相应支付平台;

3)、闪光灯回传信息实现付款方身份认证,实现无网络情况下支付平台保障的离线支付。

尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1