在非稳定网络环境下可信的公共交通身份认证和联机支付系统的制作方法

文档序号:27959245发布日期:2021-12-12 21:42阅读:97来源:国知局
在非稳定网络环境下可信的公共交通身份认证和联机支付系统的制作方法

1.本发明涉及联机支付技术领域,具体地说,涉及在非稳定网络环境下可信的公共交通身份认证和联机支付系统。


背景技术:

2.城市中乘坐公交车时一般都使用ic卡,有专门的公交卡,也有和银行卡合用的公交卡,即既可以当银行卡使用,也可以当作公交卡使用,还有和手机sim卡放在一起的移动公交卡,在公交车上可以刷手机消费,出门不再需要带一堆的散钱,既方便又时尚;
3.然而目前的公共交通支付系统在余额不足时需要先充值才能乘车,影响出行效率,易耽误他人和自己时间导致支付失败影响出行,且目前的公共交通支付系统由于没有身份认证,不仅在丢失时,使他人有机可乘的进行冒刷,造成财产的损失;
4.并且在非稳定网络环境下,通过通讯协议进行数据传输,由于网络质量差而断网,使服务器端没有及时的检测到断网所以一直在发送消息,易造成发送失败和等待超时,或者接收数据信号错乱,例如在输入密码时,由于网络延迟造成接收的密码顺序错误,导致密码认证失败,给用户体验造成了很大的伤害,鉴于此,我们提出在非稳定网络环境下可信的公共交通身份认证和联机支付系统。


技术实现要素:

5.本发明的目的在于提供在非稳定网络环境下可信的公共交通身份认证和联机支付系统,以解决上述背景技术中提出的问题。
6.为实现上述目的,本发明提供在非稳定网络环境下可信的公共交通身份认证和联机支付系统,包括用户端、服务端和前端,所述用户端用于采用公交卡为载体进行消费识别,所述服务端用于车载pos读取用户端的信息进行身份认证,传送扣款数据至用户端,在用户端余额不足时建立与前端的消费联系,所述前端用于接收所述服务端的扣款数据,管理用户端数据;
7.具体工作原理为:用户在前端对用户端内的数据进行管理,然后用户端可以采用公交卡进行刷卡,使服务端读取用户端的信息进行身份认证,避免丢失时坏人盗用,同时服务端与前端建立消费联系,方便进行消费金额的计算,可以先传送扣款数据至用户端直接进行扣款,在用户端内金额足够时可以进行直接扣款,在用户端内余额不足时与前端建立消费联系,前端接收扣款数据进行支付,同时可以向用户端内充值金额;
8.所述用户端、服务端和前端之间通过通信协议传输数据,所述通讯协议包括数据依次响应算法,包括以下步骤:
9.用户在服务端发布命令信号;
10.设置接收间隙阈值,在超过阈值时重新发送命令,直至前端依次接收命令信号;
11.在前端接收命令信号时与已有命令信号对比,重复则删除,不重复则响应命令信
号;
12.响应命令信号完成指令传输至服务端接收下一个命令信号。
13.通过数据依次响应算法可以使用户发布的命令信号依次执行,在完成一个命令信号后才接收另一个命令信号,不仅避免信号错乱,且避免网络不稳定造成命令发送失败,同时设置了间隙阈值,例如设置间隙阈值为10s,在超过10s时依然没有响应命令,则再次重复发布命令,直至前端可以接收到,避免网络不稳定造成的等待超时,由于可能造成命令多次发布,因此可以对已有命令信号进行检测,如果已经实现了则将命令删除,否则响应命令信号,避免多次发布造成的重复命令,保证了联机支付的安全性。
14.为了提高实用性,用户端可以采用乘车码为载体进行消费识别;
15.具体的,个人乘车码可由前端生成,前端可采用app、公众号小程序等,调用二维码前置集群开通接口,进行前端的账户开通绑定操作,联机或离线生成二维码后,用户在服务端扫码乘车,同时将扣款数据发送至前端进行扣款;
16.其中,二维码采用动态二维码,动态二维码每隔十几秒就会自动变换,并且能传达扫描数据,以此达到支付功能,动态二维码因其能监测扫描数据、随时更改内容、储存信息量大而被广泛应用于各种场合中,安全性更高。
17.作为本技术方案的进一步改进,所述通信协议采用tcp/ip通讯协议,tcp/ip通讯协议遵循以下规则:
18.tcp/ip连接的建立,总是由服务端呼叫建立,由服务端切断连接。
19.数据在服务端与前端间的传送,总是先由服务端端发起,数据在一条tcp/ip连接上采用同步传输的方式,即服务端在向前端发送数据后,只有收到前端响应数据后,才可以开始下一次数据发送。
20.前端在一个连接上循环侦听来自服务端的服务请求,即服务端可以使用一个连接发送多个服务请求,直到检测到连接由服务端关闭或在连接上收发数据失败,当在连接上收发数据失败时,前端主动断开连接。
21.连接的使用方式,即前端与服务端间建立多少个连接、使和每个连接发送多少个服务请求,完全由前端自定。
22.作为本技术方案的进一步改进,所述服务端包括用户识别模块、身份认证模块、联机支付模块和账户接入模块;
23.所述用户识别模块用于识别用户端,从而方便经过用户端使服务端与前端建立联系;
24.所述身份认证模块用于对用户的身份进行认证,避免外人盗用,提高安全性,同时使公共交通的支付实名制,方便后续查询;
25.所述联机支付模块用于核算扣款数据传输至前端;
26.所述账户接入模块用于使服务端与所述前端建立连接,方便数据传输。
27.作为本技术方案的进一步改进,所述用户识别模块采用射频识别的非接触式读卡器,具体的工作原理:
28.射频识别的非接触式读卡器包括二个部分:
29.一是微控制器与读写芯片mfrc531的接口函数,此部分采用c51语言编写;
30.二是pc机读写器的界面设计,pc机通过串口向微控制器发送读写命令,并等待微
控制器返回的操作结果或者数据,此部分采用vc++6.0编写,微控制器软件实现的功能为响应上位机发送命令,通过串口接收并执行相应的控制或读写操作,然后将操作的结果或读得的数据回送给上位机。
31.作为本技术方案的进一步改进,所述身份认证模块采用身份认证密钥协议,包括以下步骤:
32.用户在前端注册账号预设密钥作为私钥;
33.通过服务端与前端建立联系识别密钥与用户当前发送的信息进行验证,若验证成功,则确定当前用户身份,身份认证成功。
34.作为本技术方案的进一步改进,所述身份认证模块还包括sm4方式算法,对关键数据字段进行加密,加密步骤如下:
35.确定需要加密的字段键名放入enkey列表:比如pin,phone;
36.确定需要使用的加密安全等级放入safecontrol字段:比如sm4;
37.对每个enkey中字段进行sm4加密,sm4采用pkcs7/ecb方式;
38.加密结果采用16进制大写表示,放入对应字段;
39.可以在前端与服务端之间传输数据时,对数据字段进行加密,进一步提高安全性,避免传输过程中的数据被拦截盗窃。
40.作为本技术方案的进一步改进,所述前端包括信息接收模块、账户管理模块和消费管理模块;
41.所述信息接收模块用于接收服务端和用户端的数据信息;
42.所述账户管理模块用于对用户的账户信息进行管理,方便自定义密钥和身份信息,方便更改账户内容;
43.所述消费管理模块用于对用户端内的金额进行充值,对消费数据进行扣款管理。
44.作为本技术方案的进一步改进,所述消费管理模块包括拆分支付算法,包括以下步骤:
45.检测用户端内余额;
46.消费数据与用户端内余额数据对比,扣除用户端内余额;
47.在消费数据溢出时传输扣款信号至消费管理模块进行离线扣款;
48.在离线扣款超过预设值时提醒用户支付处理;
49.因此,方便用户在用户端余额不足时,传输信号至前端使消费管理模块接收余额溢出值,使用户先乘车,后续通过前端进行支付,若扣款超过预设值时可以进行短信提醒,否则影响信誉。
50.作为本技术方案的进一步改进,所述拆分支付算法计算公式如下:
[0051][0052]
其中,a为用户端内余额,b为消费数据值,c为余额溢出值。
[0053]
与现有技术相比,本发明的有益效果:
[0054]
1、该在非稳定网络环境下可信的公共交通身份认证和联机支付系统中,用户在前端对用户端内的数据进行管理,然后用户端可以采用公交卡进行刷卡,使服务端读取用户端的信息进行身份认证,避免丢失时坏人盗用,同时服务端与前端建立消费联系,方便在用
户端余额不足时前端接收余额溢出值,使用户先乘车,后续通过前端进行支付,实用性更强。
[0055]
2、该在非稳定网络环境下可信的公共交通身份认证和联机支付系统中,通过数据依次响应算法可以使用户发布的命令信号依次执行,在完成一个命令信号后才接收另一个命令信号,不仅避免信号错乱,且避免网络不稳定造成命令发送失败,在超过间隙阈值时依然没有响应命令,则再次重复发布命令,直至前端可以接收到,避免网络不稳定造成的等待超时。
附图说明
[0056]
图1为本发明实施例1的整体原理图;
[0057]
图2为本发明实施例1的数据依次响应算法流程图;
[0058]
图3为本发明实施例1的身份认证密钥协议流程图;
[0059]
图4为本发明实施例1的拆分支付算法流程图。
具体实施方式
[0060]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0061]
实施例1
[0062]
请参阅图1

图4所示,本实施例提供在非稳定网络环境下可信的公共交通身份认证和联机支付系统,包括用户端、服务端和前端;
[0063]
所述用户端用于采用公交卡为载体进行消费识别;
[0064]
所述服务端用于车载pos读取用户端的信息进行身份认证,传送扣款数据至用户端,在用户端余额不足时建立与前端的消费联系;
[0065]
为了保证服务端的完整性,所述服务端包括用户识别模块、身份认证模块、联机支付模块和账户接入模块;
[0066]
所述用户识别模块用于识别用户端,从而方便经过用户端使服务端与前端建立联系;
[0067]
所述身份认证模块用于对用户的身份进行认证,避免外人盗用,提高安全性,同时使公共交通的支付实名制,方便后续查询;
[0068]
所述联机支付模块用于核算扣款数据传输至前端;
[0069]
所述账户接入模块用于使服务端与所述前端建立连接,方便数据传输。
[0070]
具体的,所述用户识别模块采用射频识别的非接触式读卡器,具体的工作原理:
[0071]
射频识别的非接触式读卡器包括二个部分:
[0072]
一是微控制器与读写芯片mfrc531的接口函数,此部分采用c51语言编写;
[0073]
二是pc机读写器的界面设计,pc机通过串口向微控制器发送读写命令,并等待微控制器返回的操作结果或者数据,此部分采用vc++6.0编写,微控制器软件实现的功能为响应上位机发送命令,通过串口接收并执行相应的控制或读写操作,然后将操作的结果或读
得的数据回送给上位机。
[0074]
为了提高身份认证的准确性,避免他人盗刷,具体如图3所示,所述身份认证模块采用身份认证密钥协议,包括以下步骤:
[0075]
用户在前端注册账号预设密钥作为私钥;
[0076]
通过服务端与前端建立联系识别密钥与用户当前发送的信息进行验证,若验证成功,则确定当前用户身份,身份认证成功。
[0077]
具体的,假设用户a注册账户的私钥为x,则传输至服务端,当前用户在服务端进行验证时发送的信息为y;
[0078]
若x=y,则验证成功;
[0079]
若x≠y,则验证失败。
[0080]
所述前端用于接收所述服务端的扣款数据,管理用户端数据;
[0081]
为了保证前端的完整性,所述前端包括信息接收模块、账户管理模块和消费管理模块;
[0082]
所述信息接收模块用于接收服务端和用户端的数据信息;
[0083]
所述账户管理模块用于对用户的账户信息进行管理,方便自定义密钥和身份信息,方便更改账户内容;
[0084]
所述消费管理模块用于对用户端内的金额进行充值,对消费数据进行扣款管理。
[0085]
为了提高实用性,使用户可以先乘车后支付,具体如图4所示,所述消费管理模块包括拆分支付算法,包括以下步骤:
[0086]
检测用户端内余额;
[0087]
消费数据与用户端内余额数据对比,扣除用户端内余额;
[0088]
在消费数据溢出时传输扣款信号至消费管理模块进行离线扣款;
[0089]
在离线扣款超过预设值时提醒用户支付处理;
[0090]
因此,方便用户在用户端余额不足时,传输信号至前端使消费管理模块接收余额溢出值,使用户先乘车,后续通过前端进行支付,若扣款超过预设值时可以进行短信提醒,否则影响信誉。
[0091]
具体的,所述拆分支付算法计算公式如下:
[0092][0093]
其中,a为用户端内余额,b为消费数据值,c为余额溢出值。
[0094]
具体工作原理为:用户在前端对用户端内的数据进行管理,然后用户端可以采用公交卡进行刷卡,使服务端读取用户端的信息进行身份认证,避免丢失时坏人盗用,同时服务端与前端建立消费联系,方便进行消费金额的计算,可以先传送扣款数据至用户端直接进行扣款,在用户端内金额足够时可以进行直接扣款,在用户端内余额不足时与前端建立消费联系,前端接收扣款数据进行支付,同时可以向用户端内充值金额;
[0095]
具体如图2所示,所述用户端、服务端和前端之间通过通信协议传输数据,所述通讯协议包括数据依次响应算法,包括以下步骤:
[0096]
用户在服务端发布命令信号;
[0097]
设置接收间隙阈值,在超过阈值时重新发送命令,直至前端依次接收命令信号;
[0098]
在前端接收命令信号时与已有命令信号对比,重复则删除,不重复则响应命令信号;
[0099]
响应命令信号完成指令传输至服务端接收下一个命令信号。
[0100]
通过数据依次响应算法可以使用户发布的命令信号依次执行,在完成一个命令信号后才接收另一个命令信号,不仅避免信号错乱,且避免网络不稳定造成命令发送失败,同时设置了间隙阈值,例如设置间隙阈值为10s,在超过10s时依然没有响应命令,则再次重复发布命令,直至前端可以接收到,避免网络不稳定造成的等待超时,由于可能造成命令多次发布,因此可以对已有命令信号进行检测,如果已经实现了则将命令删除,否则响应命令信号,避免多次发布造成的重复命令,保证了联机支付的安全性。
[0101]
具体的,所述通信协议采用tcp/ip通讯协议,tcp/ip通讯协议遵循以下规则:
[0102]
tcp/ip连接的建立,总是由服务端呼叫建立,由服务端切断连接。
[0103]
数据在服务端与前端间的传送,总是先由服务端端发起,数据在一条tcp/ip连接上采用同步传输的方式,即服务端在向前端发送数据后,只有收到前端响应数据后,才可以开始下一次数据发送。
[0104]
前端在一个连接上循环侦听来自服务端的服务请求,即服务端可以使用一个连接发送多个服务请求,直到检测到连接由服务端关闭或在连接上收发数据失败,当在连接上收发数据失败时,前端主动断开连接。
[0105]
连接的使用方式,即前端与服务端间建立多少个连接、使和每个连接发送多少个服务请求,完全由前端自定。
[0106]
实施例2
[0107]
为了提高实用性,用户端可以采用乘车码为载体进行消费识别;
[0108]
具体的,个人乘车码可由前端生成,前端可采用app、公众号小程序等,调用二维码前置集群开通接口,进行前端的账户开通绑定操作,联机或离线生成二维码后,用户在服务端扫码乘车,同时将扣款数据发送至前端进行扣款;
[0109]
其中,二维码采用动态二维码,动态二维码每隔十几秒就会自动变换,并且能传达扫描数据,以此达到支付功能,动态二维码因其能监测扫描数据、随时更改内容、储存信息量大而被广泛应用于各种场合中,安全性更高。
[0110]
实施例3
[0111]
为了进一步提高安全性,避免关键数据字段泄露,所述身份认证模块还包括sm4方式算法,对关键数据字段进行加密,加密步骤如下:
[0112]
确定需要加密的字段键名放入enkey列表:比如pin,phone;
[0113]
确定需要使用的加密安全等级放入safecontrol字段:比如sm4;
[0114]
对每个enkey中字段进行sm4加密,sm4采用pkcs7/ecb方式;
[0115]
加密结果采用16进制大写表示,放入对应字段;
[0116]
可以在前端与服务端之间传输数据时,对数据字段进行加密,进一步提高安全性,避免传输过程中的数据被拦截盗窃;
[0117]
具体的,以下以json报文为例,做实例介绍
[0118]
假设需要传递如下数据:{
[0119]
"funcode":"login",
[0120]
"usename":"aaaa@qq.com",
[0121]
"pin":"123456",
[0122]
"phone":"13512341234",
[0123]
"safecontrol":"sm4"
[0124]
}
[0125]
测试sm4密钥为7465737420537472696e67206b657931,16进制格式,正式密钥系统上线前分配。
[0126]
将关键字pin进行sm4加密,加密结果:54abb5198d86b77a3edafc3ce78077cd
[0127]
将关键字phone进行sm4加密,加密结果:22879973fcd7d1ccd1506a4ab5675fb9
[0128]
最终得到加密后报文为:
[0129]
{
[0130]
"funcode":"login",
[0131]
"usename":"aaaa@qq.com",
[0132]
"pin":"54abb5198d86b77a3edafc3ce78077cd",
[0133]
"phone":"22879973fcd7d1ccd1506a4ab5675fb9",
[0134]
"safecontrol":"sm4",
[0135]
"enkey":"pin,phone"
[0136]
}。
[0137]
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的仅为本发明的优选例,并不用来限制本发明,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1