1.一种带隐藏信道的双随机码可见光与条码双认证离线支付方法,其特征在于具体步骤为:
(1)建立一套带隐藏信道的光认证离线消费装置,包括:电子钱包、消费机和服务器;
电子钱包,包括:可见光发射模块、条码扫描模块、钱包控制模块、钱包模块、输入模块、显示模块、数据接口、钱包光接收模块;可见光发射模块,用于根据控制模块输入的信息,生成并发送可见光信号;条码扫描模块,用于扫描识别条码,并将识别的结果输出给控制模块;控制模块,用于:1、将待发送的信息进行处理,生成数据包,并输出给可见光发射模块,驱动可见光发射模块发送可见光信号;2、接收条码扫描模块的扫描结果输出,并对扫描结果进行验证;3、接收钱包光接收模块的结果输出,并予以识别、认证;4、根据收到的信息和生成的支付信息,生成需要通过可见光发射模块的信息;5、与钱包模块进行消费、充值、余额查询、操作日志信息的读写操作;6、能够通过数据接口与服务器进行数据交互;钱包模块,用于保存包括:用户账号信息、钱包余额、消费权限、查询密码、支付密码、操作日志、生产发行机构在内的信息;并可以验证输入的密码是否与钱包密码模块内保存的密码一致;
输入模块,用于向控制模块输入包括支付金额、查询密码、支付密码、操作指令在内的信息;
显示模块,用于显示支付金额、密码输入界面、操作指令以及提示信息;数据接口,用于提供电子钱包的联网功能,提供与服务器连接并进行数据交换、数据维护和升级的功能;钱包光接收模块,用于接收背光模块发送的可见光背光信号;
消费机,包括:可见光接收模块、条码显示模块、读写控制模块、收银箱模块、键盘模块、通信模块、背光模块;可见光接收模块,用于接收可见光信号,并将可见光信号处理还原成对应的数字信号,再将数字信号还原成数据包;条码显示模块,用于:1、根据读写控制模块的输入信息,生成并显示出条码;2、显示交易金额、密码输入界面、操作指令以及提示信息;
读写控制模块,用于:1、接收可见光接收模块的输出,并予以识别、认证;2、将待发送的信息进行处理,输出给条码显示模块;3、将需要通过光信号形式发送的信息进行处理,生成数据包,并输出给背光模块,驱动背光模块发送可见光信号; 4、与收银箱模块进行消费、充值、余额查询、操作日志信息的读写操作;5、提供数据接口,通过通信模块与服务器进行信息的上传和下载; 收银箱模块,用于保存包括:操作日志、收款消费权限、黑名单、收银余额、操作密码、有效期、生产发行机构在内的信息;键盘模块,用于向读写控制模块输入交易金额、交易密码、操作指令;通信模块,用于通过有线或者无线的方式,连接上位机或者接入网络,从而与服务器相连;背光模块,用于为条码显示模块提供显示的照明背光,同时利用背光发送可见光背光信号;
服务器,用于:1、与消费机通过通信模块建立上传、下载的数据连接;2、与电子钱包通过数据接口建立上传、下载的数据连接;3、提供本离线支付方法的后台服务支持;4、提供整个离线支付装置与金融系统的资金流动的接口;5、为消费机、电子钱包发放或取消授权,提供包括:密钥更新、算法更新和升级、使用权限调整、有效期调整、电子钱包充值、消费机缴款、电子钱包和消费机公开信息查询在内的服务;6、保存包括:授权用户清单、黑名单、操作日志汇总、消费机清单在内的信息;
授权用户清单,用于保存包括:已经授权可以进行离线支付的电子钱包的身份标识、使用权限、有效期、电子钱包持有者的身份信息;黑名单,用于保存授权用户清单中,因欠费、挂失、有不正当使用记录而被拒绝支付交易的那部分电子钱包的身份标识信息;支付接口,用于提供整个离线支付装置与金融系统的资金流动的接口;操作日志汇总,用于保存包括所有消费机、电子钱包的查询、充值、消费的操作的时间、支付金额、支付过程数据参数在内的信息;消费机清单,用于保存包括:已经授权可以进行离线支付交易的消费机身份标识、使用权限、有效期、消费机持有者的身份信息;服务器用于给本发明中消费机发放权限,使其能够具备接受装置内的电子钱包进行支付的功能;服务器用于给本发明中电子钱包发放权限,使其能够具备向装置内的消费机进行支付的功能;同时由服务器给用户发放一个授权,授权方式是发放一个授权实体硬件设备,或者是为已有设备的用户提供一个授权号;并为设备充值,写入电子钱包身份标识、使用权限、有效期、电子钱包的支付密码和查询密码、电子钱包持有者的身份信息;
(2)由持有身份标识为CID的消费机的收款方和持有身份标识为QID的电子钱包的付款方共同完成,一个由收款方发起的支付流程如下:BF1,由收款方发出收款请求,处理流程包含如下步骤:
BF1.1,收款方在消费机上输入待接收的收款金额JR1;
BF1.2,读写控制模块生成一个光随机码GSJ1、收款随机码SKSJ1,并根据BF1.1输入的收款金额JR1,生成一个含有收款金额JR1和消费机身份标识CID1、收款随机码SKSJ1、光随机码GSJ1的收款请求SKQQ1,并将收款请求SKQQ1输出到条码显示模块;同时,并将光随机码GSJ1输出到背光模块,以可见光信号的形式发送出去;
BF1.3,条码显示模块根据收款请求SKQQ1生成一个条码并显示出来,用背光模块将光随机码GSJ1,以可见光信号的形式发送出去;并开始等待接收付款方的响应;如果在一个设定的等待时间内未收到来自付款方的响应,则刷新条码显示模块,等待下一个的收款请求的输入;
BF2,付款方接受来自收款方的收款请求,并根据收款请求做出付款响应,处理流程包含如下步骤:
BF2.1,电子钱包用条码扫描模块扫描识别收款方的条码显示模块,得到收款请求SKQQ2;利用钱包光接收模块接收光随机码GSJ2;
BF2.2,控制模块根据收款请求SKQQ2,得到收款金额JR2和消费机身份标识CID2、收款随机码SKSJ2、光随机码GSJ2,并将JR2、CID2和付款提示信息显示在显示模块上,并等待付款方确认;如果付款方同意支付,就通过输入模块输入同意支付的指令,并进入到BF2.3;如果付款方输入不同意支付的指令或者在一定设定的时间内不予确认是否同意,则退出支付流程;
BF2.3,电子钱包得到同意支付的指令后,在显示模块上显示输入密码的提示;
BF2.4,用户根据BF2.3中的密码输入的提示,由输入模块输入支付密码;
BF2.5,控制模块将输入模块输入的支付密码输入到钱包模块,由钱包模块对支付密码进行验证,当验证无误时,进入BF2.6;当验证错误时,在显示模块上显示输入密码错误的提示,并退出支付流程;
BF2.6,控制模块往钱包模块写入查询钱包余额的指令,检查钱包余额是否足够支付;
BF2.7,如果钱包余额足够,则由钱包模块返回一个余额足够的信号给控制模块,并进入BF2.8;如果钱包余额不足,则由钱包模块返回一个余额不足的信号给控制模块,并进入BF2.9;
BF2.8,控制模块生成一个含有电子钱包身份标识QID2、支付同意ZFTY2、支付金额FKJR2和收款请求SKQQ2的数据包,并将该数据包输出到可见光发射模块,由可见光发射模块将数据包以可见光信号的形式发送出去,并开始等待收款方的响应;如果在一个设定的等待时间内未收到来自收款方的响应,则结束操作,退出支付流程;
BF2.9,控制模块生成一个含有电子钱包身份标识QID2、支付余额不足ZFBZ2和收款请求SKQQ2的数据包,并将该数据包输出到可见光发射模块,由可见光发射模块将数据包以可见光信号的形式发送出去,控制模块并向显示模块发送一个余额不足的提示信息,通过显示模块告知付款方的用户,同时结束操作,退出支付流程;
BF3,收款方根据付款方发送的付款响应,发出做出收款受理,处理流程包含如下步骤:
BF3.1,由消费机的可见光接收模块接收可见光信号,并转换成数据包,再输出给读写控制模块;
BF3.2,读写控制模块从数据包中提取出电子钱包身份标识QID3、收款请求SKQQ3、支付金额FKJR3、支付同意ZFTY3或者余额不足ZFBZ3,并从SKQQ3中提取出收款随机码SKSJ3、光随机码GSJ3;如果为余额不足的数据包,则由读写控制模块向条码显示模块发送一个余额不足的提示信息,通过条码显示模块告知收款方用户,同时结束操作,退出支付流程;如果为支付同意的数据包,则进行如下几个验证:
1)验证电子钱包身份标识QID3是否并未列入黑名单中,如果电子钱包身份标识QID3在黑名单中,为验证不通过;否则为验证通过;
2)收到数据包里的收款请求SKQQ3与由收款方发送的SKQQ1是否一致,如果两者一致,为验证通过;否则为验证不通过;
3)付款响应的数据包里的支付金额FKJR3是否与由收款方发送的收款金额JR1一致,如果两者一致,为验证通过;否则为验证不通过;
4)BF1.2生成的收款随机码SKSJ1与BF3.2中从收款请求SKQQ3提取的收款随机码SKSJ3是否一致,如果两者一致,为验证通过;否则为验证不通过;
5)BF1.2生成的光随机码GSJ1与BF3.2中从收款请求SKQQ3提取的光随机码GSJ3是否一致,如果两者一致,为验证通过;否则为验证不通过;
以上五个都验证通过时,进入BF3.3,否则只要有至少一个验证不通过的,就由读写控制模块向条码显示模块发送一个验证不通过的提示信息,通过条码显示模块告知收款方的用户,同时结束操作,退出支付流程;
BF3.3,读写控制模块生成应答随机码YDSJ3、光应答随机码GDSJ3,再生成一个包括了应答随机码YDSJ3、光应答随机码GDSJ3、收款金额JR1、消费机身份标识CID1、电子钱包身份标识QID3、支付同意ZFTY3、收款码SKM3的受理信息SLX3,并将受理信息SLX3输出到条码显示模块;
BF3.4,条码显示模块根据受理信息SLX3生成一个条码并显示出来,同时,并将光应答随机码GDSJ3输出到背光模块,以可见光信号的形式发送出去;并开始等待接收付款方的响应;如果在一个设定的等待时间内未收到来自付款方的响应,则刷新条码显示模块,结束本次支付的流程操作,退出支付流程;
BF4,支付方接收来自收款方的收款受理信息,并据此做出付款答复,付款方的处理流程包括:
BF4.1,电子钱包用条码扫描模块扫描识别收款方的条码显示模块,得到受理信息SLX4;利用钱包光接收模块接收光应答随机码GDSJ4;
BF4.2,控制模块根据受理信息SLX4,得到收款金额JR4、消费机身份标识CID4、电子钱包身份标识QID4、支付同意ZFTY4、收款码SKM4、应答随机码YDSJ4、光应答随机码GDSJ4,并进行如下验证:
1)收款金额JR2与收款金额JR4是否一致;
2)消费机身份标识CID2与CID4是否一致;
3)电子钱包身份标识QID2与QID4是否一致;
4)支付同意ZFTY2与支付同意ZFTY4是否一致;
如果以上4个对比都分别一致,为验证通过,进入BF4.3;否则有一个对比不一致为验证不通过,就由控制模块向显示模块发送一个验证不通过的提示信息,通过显示模块告知付款方,同时结束操作,退出支付流程;
BF4.3,控制模块向钱包模块发送一个包含有收款金额JR4、消费机身份标识CID4的付款指令;
BF4.4,钱包模块更新钱包余额,生成一个支付码ZFM4,将本次付款操作的时间、收款金额JR4、消费机身份标识CID4、支付码ZFM4、收款码SKM4写入钱包模块,作为操作日志保存,并将付款金额JR4、支付码ZFM4输出给控制模块;
BF4.5,由控制模块生成一个包含有电子钱包身份标识QID4、付款金额JR4、支付码ZFM4、消费机身份标识CID4、应答随机码YDSJ4、光应答随机码GDSJ4的付款答复的数据包,并将该数据包输出到可见光发射模块,由可见光发射模块将数据包以可见光信号的形式发送出去;
BF5,收款方根据付款方发送的付款答复,做出收款确认,处理流程包含如下步骤:
BF5.1,由消费机的可见光接收模块接收可见光信号,并转换成数据包,再输出给读写控制模块;
BF5.2,读写控制模块从数据包中提取出电子钱包身份标识QID5、收款金额JR5、支付码ZFM5、消费机身份标识CID5、收款码SKM5、应答随机码YDSJ5、光应答随机码GDSJ5,并进行如下验证:
1)收款金额JR1与收款金额JR5是否一致;
2)消费机身份标识CID1与CID5是否一致;
3)电子钱包身份标识QID3与QID5是否一致;
4)收款码SKM3与SKM5是否一致;
5)应答随机码YDSJ3与YDSJ5是否一致;
6)光应答随机码GDSJ3与GDSJ5是否一致;
如果以上6个对比都分别一致,为验证通过,进入BF5.3;否则有一个对比不一致为验证不通过,则由读写控制模块向条码显示模块发送一个验证不通过的提示信息,通过条码显示模块告知收款方,同时结束操作,退出支付流程;
BF5.3,将支付流程发生的时间、电子钱包身份标识QID3、收款金额JR5、支付码ZFM5、收款码SKM5、应答随机码YDSJ5、光应答随机码GDSJ5写入收款箱模块,生成操作日志,并更新收款箱模块的余额信息,并通过条码显示模块显示付款成功的提示信息;
(3)在支付流程中,从电子钱包接收消费机发送的数据,以及从消费机接收电子钱包发送的数据, 都可能在收发过程中存在无法识别的可能,所以在支付流程中,对于无法识别的数据,以及因为无法接收数据而导致无法识别的情况,装置都会在一个设定的等待时间超时后,单方面结束支付流程;
在支付流程中,从电子钱包向消费机发送的数据,以及从消费机向电子钱包发送的数据, 可能在收发过程中存在数据的丢失、被篡改、伪造的风险,因此在支付流程中,对每次收到的关键数据,都假定当前收到的数据与支付流程的前面的步骤生成的或者接收到的数据不一样,需要对比验证,由此保证收发数据的真实、完整。