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