[0063] 实施例:
[0064] 本发明的一种带可见光与条码双向认证的离线支付方法,具体实施方式如下:
[0065] 建立一套带可见光与条码双向认证的离线支付装置,包括:电子钱包1、充值消费机2和服务器3。
[0066] 电子钱包1,包括:可见光发射模块17、条码扫描模块15、控制模块11、钱包模块16、输入模块12、显示模块13和数据接口14。
[0067] 可见光发射模块17,用于根据控制模块11输入的信息,生成并发送可见光信号。
[0068] 条码扫描模块15,用于扫描识别条码,并将识别的结果输出给控制模块11。
[0069] 控制模块11,用于:1、将待发送的信息进行处理,生成数据包,并输出给可见光发射模块17,驱动可见光发射模块17发送可见光信号;2、接收条码扫描模块15的扫描结果输出,并对扫描结果进行验证;3、与钱包模块16进行消费、充值、余额查询、操作日志信息的读写操作;4、根据收到的信息和生成的支付信息,生成需要通过可见光发射模块17发送的信息;5、通过数据接口14与服务器3进行数据交互。
[0070] 钱包模块16,用于保存包括:用户账号信息、钱包余额、消费权限、查询密码、支付密码、操作日志、生产发行机构在内的信息;并可以验证输入的密码是否与钱包密码模块内保存的密码一致;该模块使用手机sim卡实现。
[0071] 输入模块12,用于向控制模块11输入支付金额、查询密码、支付密码、操作指令。
[0072] 显示模块13,用于显示支付金额、密码输入界面、操作指令以及提示信息。
[0073] 数据接口14,用于提供电子钱包1的联网功能,提供与服务器3连接,并进行数据交换、数据维护和升级的功能。
[0074] 电子钱包1采用配置了闪光灯和摄像头的智能手机实现。
[0075] 充值消费机2,包括:可见光接收模块24、条码显示模块22、读写控制模块21、收银箱模块23、键盘模块25、显示器26、通信模块27。
[0076] 可见光接收模块24,用于接收可见光信号,并处理还原成对应的数字信号,还原成数据包。
[0077] 条码显示模块22,用于根据读写控制模块21的输入信息,生成并显示出条码。
[0078] 读写控制模块21,用于:1、接收可见光接收模块24的输出,并予以认证;2、将待发送的信息进行处理,输出给条码显示模块22;3、与收银箱模块23进行消费、充值、余额查询、操作日志信息的读写操作;4、提供通信接口,通过通信模块27与服务器3进行信息的上传和下载。
[0079] 收银箱模块23,用于保存包括:操作日志、收款消费权限、黑名单、收银余额、操作密码、有效期、生产发行机构在内的信息。
[0080] 键盘模块25,用于向读写控制模块21输入交易金额、交易密码、操作指令。
[0081] 显示器26,用于显示交易金额、密码输入界面、操作指令以及提示信息。
[0082] 通信模块27,用于通过有线或者无线的方式,连接上位机或者接入网络,从而与服务器相连。
[0083] 服务器3,用于:1、与充值消费机2通过通信模块27建立上传、下载的数据连接;2、与电子钱包1通过数据接口14建立上传、下载的数据连接;3、提供本离线支付方法的后台服务支持;4、提供整个离线支付装置与金融系统的资金流动的接口;5、为充值消费机2、电子钱包1发放或取消授权,提供包括:密钥更新、算法更新和升级、使用权限调整、有效期调整、电子钱包充值、充值消费机缴款、电子钱包和充值消费机公开信息查询在内的服务;6、保存包括:授权用户清单、黑名单、操作日志、充值消费机清单在内的信息。
[0084] 权用户清单,用于保存包括:已经授权可以进行离线支付的电子钱包的身份标识、使用权限、有效期、电子钱包持有者的身份信息。
[0085] 黑名单,用于保存授权用户清单中,因欠费、挂失、有不正当使用记录而被拒绝支付交易的那部分电子钱包的身份标识信息。
[0086] 支付接口,用于提供整个离线支付装置与金融系统的资金流动的接口。
[0087] 操作日志汇总,用于保存包括所有充值消费机、电子钱包的查询、充值、消费的操作的时间、支付金额、支付过程数据参数在内的信息。
[0088] 充值消费机清单,用于保存已经授权可以进行离线支付交易的充值消费机终端的信息、使用权限、有效期。
[0089] 电子钱包的发行过程包括:由服务器给用户发放一个授权,授权方式可以是发放一个授权实体硬件设备,也可以是为用户已有的配备本发明的设备提供一个授权号;并为设备充值,写入电子钱包身份标识、使用权限、有效期、电子钱包的支付密码和查询密码、电子钱包持有者的身份信息。
[0090] 一个支付流程实施例如下:
[0091] 支付由一个授权的充值消费机2的收款方和一个授权的电子钱包1的付款方共同完成,支付流程如下:
[0092] BF1,由收款方发出收款请求,处理流程包含如下步骤:
[0093] BF1.1,收款方在充值消费机2上输入待接收的收款金额JR1。
[0094] BF1.2,读写控制模块21根据BF1.1输入的收款金额JR1,生成一个含有收款金额JR1和充值消费机2的身份标识CID1的收款请求SKQQ1,并将收款请求SKQQ1输出到条码显示模块22。
[0095] BF1.3,条码显示模块22根据收款请求SKQQ1生成一个条码并显示出来,并开始等待接收付款方的响应;如果在一个设定的等待时间内未收到来自付款方的响应,则刷新条码显示模块22,等待下一个的收款请求的输入。
[0096] BF2,付款方接受来自收款方的收款请求,并根据收款请求做出付款响应,处理流程包含如下步骤:
[0097] BF2.1,电子钱包1用条码扫描模块13扫描识别收款方的条码显示模块22,得到收款请求SKQQ2。
[0098] BF2.2,控制模块11根据收款请求SKQQ2,得到收款金额JR2和充值消费机21的身份标识CID2,并将JR2、CID2和付款提示信息显示在显示模块12上,并等待付款方确认;如果付款方同意支付,就通过输入模块12输入同意支付的指令,并进入到BF2.3;如果付款方输入不同意支付的指令或者在一定设定的时间内不予确认是否同意,则退出支付流程。
[0099] BF2.3,电子钱包1得到同意支付的指令后,在显示模块13上显示输入密码的提示。
[0100] BF2.4,用户根据BF2.3中的密码输入的提示,由输入模块12输入支付密码。
[0101] BF2.5,控制模块11将输入模块12输入的支付密码输入到钱包模块16,由钱包模块16对支付密码进行验证,当验证无误时,进入BF2.6;当验证错误时,在显示模块13上显示输入密码错误的提示,并退出支付流程。
[0102] BF2.6,控制模块11往钱包模块1写入查询钱包余额的指令,检查钱包余额是否足够支付。
[0103] BF2.7,如果钱包余额足够,则由钱包模块16返回一个余额足够的信号给控制模块11,并进入BF2.8;如果钱包余额不足,则由钱包模块16返回一个余额不足的信号给控制模块11,并进入BF2.9。
[0104] BF2.8,控制模块11生成一个含有电子钱包1的身份标识QID2、支付同意ZFTY2、支付金额FKJR2和收款请求SKQQ2的数据包,并将该数据包输出到可见光发射模块17,由可见光发射模块17将数据包以可见光信号的形式发送出去,并开始等待收款方的响应;如果在一个设定的等待时间内未收到来自收款方的响应,则结束操作,退出支付流程。
[0105] BF2.9,控制模块11生成一个含有电子钱包1的身份标识QID2、支付余额不足ZFBZ2和收款请求SKQQ2的数据包,并将该数据包输出到可见光发射模块17,由可见光发射模块17将数据包以可见光信号的形式发送出去,控制模块11并向显示模块13发送一个余额不足的提示信息,通过显示模块13告知付款方的用户,同时结束操作,退出支付流程。
[0106] BF3,收款方根据付款方发送的付款响应,发出做出收款受理,处理流程包含如下步骤:
[0107] BF3.1,由充值消费机2的可见光接收模块24接收可见光信号,并转换成数据包,再输出给读写控制模块21。
[0108] BF3.2,读写控制模块21从数据包中提取出电子钱包1的身份标识QID3、收款请求SKQQ3、支付金额FKJR3、支付同意ZFTY3或者余额不足ZFBZ3;如果为余额不足的数据包,则由读写控制模块21向显示器26发送一个余额不足的提示信息,通过显示器26告知收款方用户,同时结束操作,退出支付流程;如果为支付同意的数据包,则进行如下三个验证:
[0109] 1)验证电子钱包1的身份标识QID3是否并未列入黑名单中,如果电子钱包1的身份标识QID3在黑名单中,为验证不通过;否则为验证通过。
[0110] 2)收到数据包里的收款请求SKQQ3与由收款方发送的SKQQ1是否一致,如果两者一致,为验证通过;否则为验证不通过。
[0111] 3)付款响应的数据包里的支付金额FKJR3是否与由收款方发送的收款金额JR1一致,如果两者一致,为验证通过;否则为验证不通过。
[0112] 以上三个都验证通过时,进入BF3.3,否则只要有至少一个验证不通过的,就由读写控制模块21向显示器26发送一个验证不通过的提示信息,通过显示器26告知收款方的用户,同时结束操作,退出支付流程。
[0113] BF3.3,读写控制模块21生成一个包括了收款金额JR1、充值消费机2的身份标识CID1、电子钱包1的身份标识QID3、支付同意ZFTY3、收款码SKM3的受理信息SLX3,并将受理信息SLX3输出到条码显示模块22。
[0114] BF3.4,条码显示模块22根据受理信息SLX3生成一个条码并显示出来,并开始等待接收付款方的响应;如果在一个设定的等待时间内未收到来自付款方的响应,则刷新条码显示模块22,结束本次支付的流程操作,退出支付流程。
[0115] BF4,付款方接收来自收款方的收款受理信息,并据此做出付款答复,付款方的处理流程包括:
[0116] BF4.1,电子钱包1用条码扫描模块15扫描识别收款方的条码显示模块22,得到受理信息SLX4。
[0117] BF4.2,控制模块11根据受理信息SLX4,得到收款金额JR4、充值消费机2的身份标识CID4、电子钱包1的身份标识QID4、支付同意ZFTY4、收款码SKM4,并进行如下验证:
[0118] 1)收款金额JR2与收款金额JR4是否一致。
[0119] 2)充值消费机2的身份标识CID2与CID4是否一致。
[0120] 3)电子钱包1的身份标识QID2与QID4是否一致。
[0121] 4)支付同意ZFTY2与支付同意ZFTY4是否一致。
[0122] 如果以上4个对比都分别一致,为验证通过,进入BF4.3;否则有一个对比不一致为验证不通过,否则由控制模块11向显示模块13发送一个验证不通过的提示信息,通过显示模块13告知付款方,同时结束操作,退出支付流程。
[0123] BF4.4,控制模块11向钱包模块16发送一个包含有收款金额JR4、充值消费机2的身份标识CID4的付款指令。
[0124] BF4.5,钱包模块16更新钱包余额,生成一个支付码ZFM4,将本次付款操作的时间、收款金额JR4、充值消费机2的身份标识CID4、支付码ZFM4、收款码SKM4写入钱包模块16,作为操作日志保存,并将付款金额JR4、支付码ZFM4输出给控制模块11。
[0125] BF4.6,由控制模块11生成一个包含有电子钱包1的身份标识QID4、付款金额JR4、支付码ZFM4、充值消费机2的身份标识CID4的付款答复的数据包,并将该数据包输出到可见光发射模块17,由可见光发射模块17将数据包以可见光信号的形式发送出去。
[0126] BF5,收款方根据付款方发送的付款答复,做出收款确认,处理流程包含如下步骤:
[0127] BF5.1,由充值消费机2的可见光接收模块24接收可见光信号,并转换成数据包,再输出给读写控制模块21。
[0128] BF5.2,读写控制模块21从数据包中提取出电子钱包1的身份标识QID5、收款金额JR5、支付码ZFM5、充值消费机的身份标识CID5、收款码SKM5,并进行如下验证:
[0129] 1)收款金额JR1与收款金额JR5是否一致。
[0130] 2)充值消费机2的身份标识CID1与CID5是否一致。
[0131] 3)电子钱包1的身份标识QID3与QID5是否一致。
[0132] 4)收款码SKM3与SKM5是否一致。
[0133] 如果以上4个对比都分别一致,为验证通过,进入BF5.3;否则有一个对比不一致为验证不通过,由读写控制模块21向显示器26发送一个验证不通过的提示信息,通过显示器26告知收款方,同时结束操作,退出支付流程。
[0134] BF5.3,将本次收款操作的时间、电子钱包1的身份标识QID3、收款金额JR5、支付码ZFM5、收款码SKM5写入收款箱模块23,生成操作日志,并更新收款箱模块23的余额信息,并通过显示器26显示付款成功的提示信息。