CN115296822A - 一种业务处理的实现方法及系统 - Google Patents
一种业务处理的实现方法及系统 Download PDFInfo
- Publication number
- CN115296822A CN115296822A CN202211186562.0A CN202211186562A CN115296822A CN 115296822 A CN115296822 A CN 115296822A CN 202211186562 A CN202211186562 A CN 202211186562A CN 115296822 A CN115296822 A CN 115296822A
- Authority
- CN
- China
- Prior art keywords
- equipment
- service
- result
- acquires
- push server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开一种业务处理的实现方法及系统,该方法中终端设备的数据经过推送服务器统一中转后发送给业务系统,终端设备使用统一算法对数据进行加密后发送给推送服务器,推送服务器对加密后的数据解密后再使用不同的加密策略对解密结果进行处理,将处理结果发送给不同的业务系统,使得一款终端设备固件适用于不同的业务系统,终端设备无需再各自单独维护商户等业务逻辑,极大地简化业务处理、减少终端设备固件的开发周期和工作量;在终端设备出厂后可对其加强管控,方便追踪和定位,统一商户管理;可缩短终端设备固件的项目开发周期,节省研发资源成本;通过推送服务器可以使原有的终端设备对接更多不同的业务系统,提高终端设备的竞争力。
Description
技术领域
本发明涉及信息安全领域,尤其涉及一种业务处理的实现方法及系统。
背景技术
随着通讯技术的快速发展和移动终端的广泛应用,应运而生各种处理业务的终端设备。
在现有技术中,终端设备的固件可以定制,一款固件对应一个业务系统,终端设备与业务系统进行通讯时需对通讯数据进行加密处理,不同业务系统使用的加密算法不同,生成的加密结果的数据结构也不同,不同业务系统与终端设备进行通讯时使用不同的通讯协议,如有多个业务系统的需求,就需要定制多款固件,导致开发人员工作量增加,开发周期延长,且在终端设备出厂后,后期维护也会产生大量的工作量,增加维护成本。故亟需提供一种能使终端设备固件适应于不同业务系统的方法。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种业务处理的实现方法及系统。
第一方面,本发明实施例提供了一种业务处理的实现方法,包括:
步骤A0:终端设备登录推送服务器并从所述推送服务器中获取企业信息,根据企业信息显示相应的业务处理画面,判断自身设备是否已激活,是则执行步骤A1,否则进行激活操作,激活成功后执行步骤A1;
步骤A1:所述终端设备接收商户输入的业务信息;
步骤A2:当所述终端设备通过扫描用户设备获取到待处理信息时,根据所述待处理信息和所述业务序号生成业务处理请求,使用设备密钥对所述业务处理请求进行加密,并将业务处理请求密文发送给所述推送服务器;
步骤A3:所述推送服务器获取当前长连接的设备标识,根据所述设备标识获取对应的设备密钥,使用所述设备密钥对接收到的所述业务处理请求密文进行解密,如解密成功则根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对解密成功得到的待处理信息和所述设备标识进行处理生成业务处理指令;
步骤A4:所述推送服务器将所述业务处理指令发送给业务系统;
步骤A5:所述业务系统对接收到的所述业务处理指令进行解析,根据解析得到的设备标识获取对应的加密策略,根据所述加密策略对所述业务处理指令进行验证,如验证成功则执行步骤A6,否则报错;
步骤A6:所述业务系统从所述业务处理指令的解析结果中获取待处理信息,对所述待处理信息进行处理得到第一处理结果,使用所述加密策略对所述第一处理结果、生成的业务序号和所述设备标识进行处理生成业务处理结果;
步骤A7:所述业务系统将所述业务处理结果返回给所述推送服务器,执行步骤A8;
步骤A8:所述推送服务器对所述业务处理结果进行解析,获取当前长连接的设备标识,根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对所述业务处理结果的解析结果进行验证,如验证成功则执行步骤A9;
步骤A9:所述推送服务器根据所述业务处理结果的解析结果生成业务处理响应,使用所述设备密钥对业务处理响应进行加密,并将业务处理响应密文发送给所述终端设备;
步骤A10:所述终端设备使用所述设备密钥对接收到的业务处理响应密文进行解密,从解密成功的数据中提取第一处理结果并进行播报;
所述终端设备激活之后还包括:当所述终端设备接收到商户的第一触发信息时根据所述企业信息显示对应的菜单界面。
第二方面,本发明实施例又提供一种业务处理的实现系统,包括:终端设备、推送服务器和业务系统;
所述终端设备用于登录推送服务器并从所述推送服务器中获取企业信息,根据所述企业信息显示相应的业务处理页面,判断自身设备是否已激活,如未激活则进行激活操作;
所述终端设备还用于在激活之后接收商户输入的业务信息;当通过扫描用户设备获取到待处理信息时,根据所述待处理信息和业务序号生成业务处理请求,使用设备密钥对所述业务处理请求进行加密,并将业务处理请求密文发送给所述推送服务器;
所述推送服务器用于在接收到业务处理请求密文后获取当前长连接的设备标识,根据所述设备标识获取对应的设备密钥,使用所述设备密钥对接收到的所述业务处理请求密文进行解密,如解密成功则根据所述设备标识获取对应的预置的企业信息,从所述企业信息中获取加密策略,据加密策略对解密成功得到的待处理信息和所述设备标识进行处理生成业务处理指令,将所述业务处理指令发送给所述业务系统;
所述业务系统用于对接收到的所述业务处理指令进行解析,根据解析得到的设备标识获取对应的加密策略,根据所述加密策略对所述业务处理指令进行验证,如验证成功则从所述业务处理指令的解析结果中获取待处理信息,对所述待处理信息进行处理得到第一处理结果,使用所述加密策略对第一处理结果、生成的业务序号和所述设备标识进行处理生成业务处理结果,将业务处理结果返回给所述推送服务器;
所述推送服务器还用于对所述业务处理结果进行解析,获取当前长连接的设备标识,根据所述设备标识获取对应的预置的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对所述业务处理结果的解析结果进行验证,如验证成功则根据所述业务处理结果的解析结果生成业务处理响应,使用所述设备密钥对业务处理响应进行加密,并将业务处理响应密文发送给所述终端设备;
所述终端设备还用于使用所示设备密钥对接收到的业务处理响应密文进行解密,从解密成功的数据中提取第一处理结果并进行播报;
所述终端设备还用于当接收到商户的第一触发信息时根据所述企业信息显示对应的菜单界面。
第三方面,本发明实施例提供了一种电子设备,其特征在于,所述电子设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现前述业务处理的实现方法。
第四方面,本发明实施例又提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行前述业务处理的实现方法。
第五方面,本发明实施例又提供一种芯片系统,包括芯片,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行前述业务处理的实现方法。
本发明与现有技术相比,具有以下优点:在本发明技术方案使得一款终端设备固件适用于不同的业务系统,终端设备无需再各自单独维护商户等业务逻辑,极大地简化业务处理、减少终端设备固件的开发周期和工作量。本发明方案还可产生一定的经济和社会效益:例如,缩短终端设备固件的项目开发周期,节省研发资源成本,提前交付终端设备给客户;缩短新的终端设备导入-研发-发布的周期,通过推送服务器可以使原有的终端设备对接更多不同的业务系统,提高终端设备的竞争力。
附图说明
图1为本发明实施例一提供的一种业务处理的实现方法的流程图;
图2和图3为本发明实施例二提供的一种业务处理的实现方法的流程图。
具体实施方式
本申请提出了一种业务处理的实现方法及系统,下面结合附图,对本申请具体实施方式进行详细说明。所述实施例的示例在附图中示出。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施方式作进一步地详细描述。
实施例一
本发明实施例一提供了一种业务处理的实现方法,如图1所示,包括:
步骤A0:终端设备登录推送服务器并从推送服务器中获取企业信息,根据企业信息显示相应的业务处理画面,判断自身设备是否已激活,是则执行步骤A1,否则进行激活操作,激活成功后执行步骤A1;
步骤A1:终端设备接收商户输入的业务信息;
本实施例中,在步骤A1之后商户提醒用户出示用户设备的二维码;
步骤A2:当终端设备通过扫描用户设备获取到待处理信息时,根据待处理信息和业务序号生成业务处理请求,使用设备密钥对业务处理请求进行加密,并将业务处理请求密文发送给推送服务器;
步骤A3:推送服务器获取当前长连接的设备标识,根据设备标识获取对应的设备密钥,使用设备密钥对接收到的业务处理请求密文进行解密,如解密成功则根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对解密成功得到的待处理信息和设备标识进行处理生成业务处理指令;
步骤A4:推送服务器将业务处理指令发送给业务系统;
步骤A5:业务系统对接收到的业务处理指令进行解析,根据解析得到的设备标识获取对应的加密策略,根据加密策略对业务处理指令进行验证,如验证成功则执行步骤A6;
步骤A6:业务系统从业务处理指令的解析结果中获取待处理信息,对待处理信息进行处理得到第一处理结果,使用加密策略对第一处理结果、生成的业务序号和设备标识进行处理生成业务处理结果;
步骤A7:业务系统将业务处理结果返回给推送服务器,执行步骤A8;
步骤A8:推送服务器对业务处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对业务处理结果的解析结果进行验证,如验证成功则执行步骤A9;
步骤A9:推送服务器根据业务处理结果的解析结果生成业务处理响应,使用设备密钥对业务处理响应进行加密,并将业务处理响应密文发送给终端设备;
步骤A10:终端设备使用设备密钥对接收到的业务处理响应密文进行解密,从解密成功的数据中提取第一处理结果并进行播报;
终端设备激活之后还包括:当终端设备接收到商户的第一触发信息时根据企业信息显示对应的菜单界面;
其中,菜单界面包括业务处理模式(包括主扫和/或被扫)按钮、还原按钮、查询按钮中的一个或多个或全部,还可有其他功能按钮,例如,第一业务系统的企业为第一企业,终端设备为所属企业为第一企业时,显示的对应菜单界面为:业务处理模式(包括主扫和被扫)按钮和还原按钮;第二业务系统的企业为第二企业,终端设备为所属企业为第二企业时,显示的对应菜单界面为:业务处理模式(默认为被扫)按钮、还原按钮和查询按钮。
可选的,在本实施例方法还有另一种实现方式,即步骤A1-步骤A10替换为:
步骤S1:当终端设备接收到的商户输入的业务信息时根据业务信息生成预处理请求,使用设备密钥对预处理请求进行加密并将预处理请求密文发送给推送服务器;
步骤S2:推送服务器获取当前长连接的设备标识,根据设备标识从数据库中获取对应的设备密钥,使用获取到的设备密钥对接收到的预处理请求密文进行解密,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对解密成功得到的业务信息、设备标识进行处理生成预处理指令,并将预处理指令发送给业务系统;
步骤S3:业务系统对预处理指令进行验证,如验证成功则执行步骤S4,如验证失败则报错;
步骤S4:业务系统根据预处理指令中的业务信息生成二维码,根据与预处理指令中的设备标识对应的加密策略对二维码进行处理得到预处理结果,并将预处理结果返回给推送服务器;
步骤S5:推送服务器对接收到的预处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据预处理结果的解析结果和加密策略对预处理结果进行验证,如验证成功则执行步骤S6,否则报错;
步骤S6:推送服务器使用与设备标识对应的设备密钥对预处理结果的解析结果进行加密生成预处理响应密文,将预处理响应密文返回给终端设备;
步骤S7:终端设备使用设备密钥对接收到的预处理响应密文进行解密,如解密成功则根据解密结果判断预处理是否成功,是则从解密结果中获取二维码并显示;
步骤S8:当业务系统接收到用户设备发送的业务数据时,对业务数据进行数据处理得到第二处理结果,根据加密策略对第二处理结果和生成的业务序号进行处理生成业务处理结果,并将业务处理结果发送给推送服务器;
步骤S9:推送服务器对业务处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据业务处理结果的解析结果和加密策略对业务处理结果进行验证,如验证成功则执行步骤S10,如验证失败则报错;
步骤S10:推送服务器根据业务处理结果的解析结果生成业务处理响应,使用与设备标识对应的设备密钥对业务处理响应进行加密,并将业务处理响应密文发送给终端设备;
步骤S11:终端设备使用设备密钥对接收到的业务处理响应密文进行解密,从解密成功的结果中提取第二处理结果并播报。
可选的,本实施例的终端设备可以同时具有上述两种处理业务的模式,由商户选择使用哪种模式来处理业务,即当终端设备接收到商户在菜单界面上选择的业务处理模式时判断业务处理模式的类型,如为主扫模式则设置业务处理使用主扫,如为被扫模式则设置业务处理使用被扫,打开摄像头;
步骤A1中的生成业务序号之前包括:当终端设备接收到的商户输入的业务信息时判断业务处理模式,如为主扫模式则执行步骤Y1,如为被扫模式则生成业务序号,执行步骤A2;
步骤Y1:当终端设备接收到的商户输入的业务信息时根据业务信息生成预处理请求,使用设备密钥对预处理请求进行加密并将预处理请求密文发送给推送服务器;
步骤Y2:推送服务器获取当前长连接的设备标识,根据设备标识从数据库中获取对应的设备密钥,使用获取到的设备密钥对接收到的预处理请求密文进行解密,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对解密成功得到的业务信息、设备标识进行处理生成预处理指令并将预处理指令发送给业务系统;
步骤Y3:业务系统对预处理指令进行验证,如验证成功则执行步骤Y4,如验证失败则报错;
步骤Y4:业务系统根据预处理指令中的业务信息生成二维码,根据与预处理指令中的设备标识对应的加密策略对二维码进行处理得到预处理结果,并预处理结果返回给推送服务器;
步骤Y5:推送服务器对接收到的预处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取提前预置的对应企业信息,从企业信息中获取加密策略,并根据预处理结果的解析结果和加密策略对预处理结果进行验证,如验证成功则执行步骤Y6,否则报错;
步骤Y6:推送服务器使用与设备标识对应的设备密钥对预处理结果的解析结果进行加密生成预处理响应密文,并将预处理响应密文返回给终端设备;
步骤Y7:终端设备使用设备密钥对接收到的预处理响应密文进行解密,如解密成功则根据解密结果判断预处理是否成功,是则从解密结果中获取二维码并显示;
步骤Y8:当业务系统接收到用户设备的业务数据时,对业务数据进行数据处理得到第二处理结果,根据加密策略对第二处理结果和生成的业务序号进行处理生成业务处理结果,并将业务处理结果发送给推送服务器;
步骤Y9:推送服务器对业务处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据业务处理结果的解析结果和加密策略对业务处理结果进行验证,如验证成功则执行步骤Y10,如验证失败则报错;
步骤Y10:推送服务器根据业务处理结果的解析结果生成业务处理响应,使用与设备标识对应的设备密钥对业务处理响应进行加密并将业务处理响应密文发送给终端设备;
步骤Y11:终端设备使用设备密钥对接收到的业务处理响应密文进行解密,从解密成功的结果中提取第二处理结果并播报。
在本发明技术方案中,终端设备的数据经过推送服务器统一中转后发送给业务系统,终端设备使用统一算法对数据进行加密后发送给推送服务器,推送服务器对加密后的数据解密后再使用不同的加密策略对解密结果进行处理,将处理结果发送给不同的业务系统,使得一款终端设备固件适用于不同的业务系统,终端设备无需再各自单独维护商户等业务逻辑,极大地简化业务处理、减少终端设备固件的开发周期和工作量;且在终端设备出厂后可对其加强管控,方便追踪和定位,统一商户管理。本发明方案还可产生一定的经济和社会效益:例如,缩短终端设备固件的项目开发周期,节省研发资源成本,提前交付终端设备给客户;缩短新的终端设备导入-研发-发布的周期,通过推送服务器可以使原有的终端设备对接更多不同的业务系统,提高终端设备的竞争力。
实施例二
本发明实施例二提供一种业务处理的实现方法,如图2和图3所示,包括:
步骤201:终端设备根据设备标识和登录信息组装登录请求,并将登录请求发送给推送服务器;
可选的,本实施例中步骤201之前还包括:
步骤200:终端设备开机,接收烧录的三元组信息并保存;
在本实施例中,步骤201之前还包括:推送服务器接收导入的终端设备的三元组信息和设备所属的企业信息,将三元组信息和企业信息对应保存到数据库中;业务系统接收业务工作人员输入的设备标识和商户信息并对应保存;
在本实施例中,业务系统的企业客户需要先向厂商下单订购终端设备,下单后厂商确认终端设备的设备标识,厂商客户端生成产品密钥和设备密钥,不同业务系统所下单订购的终端设备的设备标识是不一样的,由厂商客户端将三元组烧录到终端设备,并将三元组导入到推送服务中;
该步骤中的三元组信息包括:产品密钥、设备标识、设备密钥;
例如,本实施例中的设备标识可以为设备序列号;
例如,本实施例中的产品密钥为a1hkWWez9M6,设备标识为20010000001,设备密钥为095ee8318b5911c075f466ea88a5169f;
在本实施例中,步骤201之前还包括:终端设备生成登录信息,
具体的,登录信息包括登录名和密码,终端设备生成登录信息具体包括:终端设备将交互协议版本号、产品密钥、安全模式、加密方式和时间戳按照顺序使用预设符号进行拼接得到登录名,使用设备密钥对登录名进行签名,将签名结果转换为十六进制字符串得到密码;例如,本实施例中的预设符号为&;
本实施例中发送登录请求使用的协议为mqtt;
例如,本实施例中的登录请求为:
mqtt_params.host=iotserver-testing.ft.com
mqtt_params.port=10281
mqtt_params.client_id=20010000001
mqtt_params.username=v6&a1hkWWez9M6&0&1&1628253372
mqtt_params.password=469082b0f06f27a6b0aade0b9c604170dbdc621291fc7a75180468b3b2c8e16a
mqtt_params.keepalive_interval=100
其中mqtt_params.host为推送服务域名地址;mqtt_params.port为推送服务端口;mqtt_params.client_id为设备标识;mqtt_params.username为登录名;mqtt_params.password为密码;mqtt_params.keepalive_interval为设备心跳时间周期;
可选的,在本实施例中,步骤201之后还包括:如终端设备在预设时间内未收到推送服务器返回的登录响应时会间隔预设时长重新发送登录请求给推送服务器直到收到推送服务器的登录响应;具体为:如终端设备在第一预设时长内未收到推送服务器的登录响应时,终端设备重新发送登录请求给推送服务器,如终端设备在第二预设时长内未收到推送服务器的登录响应时,终端设备重新发送登录请求给推送服务器,如终端设备在第三预设时长内未收到推送服务器的登录响应时,终端设备重新发送登录请求给推送服务器,如终端设备在第四预设时长内未收到推送服务器的登录响应时,终端设备重新发送登录请求给推送服务器,如终端设备在第五预设时长内未收到推送服务器的登录响应时,终端设备重新发送登录请求给推送服务器直到收到推送服务器的登录响应;第一预设时长为4s、第二预设时长为8s、第三预设时长为16s、第四预设时长为32s、第五预设时长为64s;
步骤202:推送服务器对接收到的登录请求进行解析,根据解析得到的设备标识获取对应的设备密钥,使用设备密钥对登录请求进行验证,如验证合法则生成包含登录成功的登录响应并返回给终端设备,与终端设备建立长连接,执行步骤203,如验证不合法则生成包含登录失败的登录响应并返回给终端设备;
在本实施例中,推送服务器使用mqtt协议与终端设备建立长连接;
具体的,在本实施例中,使用设备密钥对登录请求进行验证,包括:使用设备密钥对解析得到的登录信息中的密码进行解密得到第一解密值,对解析得到的登录信息中的登录名进行哈希运算得到第一哈希值,判断第一解密值与第一哈希值是否匹配,是则验证合法,否则验证不合法;
在本实施例中,由于终端设备与推送服务器使用mqtt协议建立长连接,故终端设备成功登录推送服务器之后,每次推送服务器接收到终端设备发送的密文数据后,均使用保存的该终端设备的设备密钥对接收到的密文数据进行解密;
可选的,在本实施例中,终端设备接收到包含登录成功的登录响应后执行步骤T1-步骤T2和步骤W1-步骤W2;
步骤T1:终端设备获取基站、WIFI信息,并根据基站、WIFI信息组成地理位置信息,使用设备密钥对地理位置信息进行加密并将地理位置信息密文发送给推送服务器;
例如,该步骤中的地理位置信息为:
{
"gprs_info": {
"bts": {
"mcc": "460", --移动用户所属国家代码,默认460
"mnc": "0", --移动网号, 中国移动:0;中国联通:1
"lac": "1028", --位置区域码, 取值范围:0-65535
"cellid": "21149965", --基站小区编号,取值范围:
0-65535,0-268435455,其中 0,65535,268435455 不使用,小区编号大于65535时为 3G 基站
"signal": "-82" --信号强度, 取值范围:0 到-113dbm,(如获得信号强度为正数,则请按照以下公式进行转换:获得的正信号强度 * 2 –113)
},
"nearbts": [{
"mcc": "460",
"mnc": "0",
"lac": "1028",
"cellid": "21149955",
"signal": "-95"
}, {
"mcc": "460",
"mnc": "0",
"lac": "1028",
"cellid": "23326420",
"signal": "-95"
}, {
"mcc": "460",
"mnc": "0",
"lac": "1028",
"cellid": "22705613",
"signal": "-101"
}]
}
"wifi_info":{
"mmac":{
"ssid":"ASUS",
"mac":"d4:5d:64:75:6a:20",
"signal":"-23"
},
"macs":[{
"ssid":"DDDD",
"mac":"b0:d5:9d:fe:60:78",
"signal":"-33"
},{
"ssid":"ftsafe",
"mac":"84:5b:12:58:23:a1",
"signal":"-41"
},{
"ssid":"aaaaaa",
"mac":"64:6e:97:ad:fa:f8",
"signal":"-41"
},{
"ssid":"BBBB",
"mac":"28:ff:3e:aa:4a:f6",
"signal":"-46"
}]}
}
步骤T2:推送服务器获取当前长连接的设备标识,根据设备标识从数据库中获取对应的设备密钥,使用设备密钥对接收到的地理位置信息密文进行解密,并保存解密成功得到的地理位置信息;
在本实施例中,地理位置信息用于业务处理时防止终端设备被移走非法使用,即相邻两次业务处理的距离需在规定范围内;
步骤W1:终端设备获取插入的SIM卡信息,根据SIM卡信息生成设备基础信息,使用设备密钥对设备基础信息进行加密并将设备基础信息密文发送给推送服务器;
可选的,在本实施例中,设备基础信息还包括:设备版本号、软件版本号、WIFI信息;
例如,该步骤中的设备基础信息为:
{
"version":"1000",
"company_name":"cbc",
"device_info":{
"battery":"2000", //电池信息,容量1000/2000 (mAH)
"screen":"", //屏幕信息 200*200;如无法获取分辨率则传1,无屏则0或不传
"audio_type":"tts", //音频类型: tts/amr/mp3/wav
"sdk_version":"1.0.1", //底包版本
"wifi_version":"1300", //WiFi模块版本
"imei":"862517040580318",
"imsi":"9460046631104660",
"iccid":"89860446101990294660",
}
}
步骤W2:推送服务器获取当前长连接的设备标识,根据设备标识从数据库中获取对应的设备密钥,使用设备密钥对接收到的设备基础信息密文进行解密,保存解密成功得到的设备基础信息;
可选的,本实施例中的步骤W2还包括:显示解密成功得到的设备基础信息;
其中,步骤T1-步骤T2与步骤W1-步骤W2的顺序是可调换的;
步骤203:推送服务器根据设备标识获取设备所属的企业信息,并根据设备所属的企业信息和设备激活状态组装设备所属企业通知报文,使用设备密钥对企业通知报文进行加密得到企业通知报文密文;
具体的,在本实施例中,推送服务器根据设备标识获取设备所属的企业信息包括:推送服务根据设备标识查询数据库的设备标识,根据设备标识在数据库中获取设备所属的企业信息;
步骤204:推送服务器将设备所属企业通知报文密文发送给终端设备;
步骤205:终端设备使用保存的设备密钥对接收到的设备所属企业通知报文密文进行验证,如验证通过则从设备所属企业通知报文密文中获取设备所属的企业信息并保存,如验证未通过则报错;
具体的,在本实施例中,步骤205包括:终端设备使用保存的设备密钥对接收到的设备所属企业通知报文密文进行解密,如解密成功则验证通过,从解密结果中获取设备所属的企业信息并保存,如解密失败则报错;
可选的,本实施例中步骤205中解密成功之后还包括:从解密结果中获取设备激活状态,并显示设备所属的企业信息和设备激活状态;
可选的,设备激活状态包括已激活、未激活;
例如,该步骤中显示的设备所属的企业信息和设备激活状态为:
"company_name":"cbc",//设备所属企业
"is_active":1 //该设备已激活
步骤206:终端设备判断自身设备是否已激活,是则等待进行操作,执行步骤214,否则执行步骤207;
具体的,在本实施例中,步骤206包括:终端设备根据解密结果中的设备激活状态判断自身设备是否已激活,如设备激活状态为已激活则等待操作,执行步骤214,如设备激活状态为未激活则执行步骤207;
可选的,在本实施例中,步骤206中还包括:如设备激活状态为已激活则根据设备所属的企业信息显示预先设置好的业务处理画面,执行步骤214;如设备激活状态为未激活则显示激活页面,等待激活,执行步骤207;
在本实施例中,终端设备根据设备所属的企业信息显示预先设置好的业务处理画面可以为图片或动画,不同业务系统下单的终端设备的业务处理画面不同;
可选的,在本实施例中,终端设备激活之后还包括:当终端设备接收到商户的第一触发信息时显示菜单界面;
例如,第一触发信息可以是用户同时触发终端设备上的几个不同按键生成的信息,菜单界面包括不同功能的按钮,比如:查询按钮、还原按钮、管理(设置处理模式)按钮;
步骤207:终端设备根据商户输入的激活码生成设备激活请求,使用设备密钥对设备激活请求进行加密,并将设备激活请求密文发送给推送服务器;
可选的,在本实施例中,商户可通过终端设备的键盘输入激活码或与终端设备连接的客户端的键盘输入激活码;
例如,该步骤中的激活码为20210518;
生成的设备激活请求为:{
"active_code":"20210518", //激活码
"merchant_id":"000063066004189990000242", //商户号
};
步骤208:推送服务器获取当前长连接的设备标识,根据设备标识从数据库中获取对应的设备密钥,使用设备密钥对接收到的设备激活请求密文进行解密,如解密成功则执行步骤209,如解密失败则生成激活失败信息,使用设备密钥对激活失败信息进行加密生成激活响应密文,并将激活响应密文发送给终端设备,执行步骤213;
步骤209:推送服务器根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对设备标识和设备激活请求密文的解密结果进行处理生成设备激活指令,并将设备激活指令发送给业务系统;
可选的,在本实施例中,不同业务系统对应的加密策略可不同;
(一)本实施例中的业务系统为第一业务系统,从企业信息中获取的加密策略包括:加密算法为sm4,签名算法为sm2,加密过程使用的密钥为设备密钥;
例如,设备密钥为:04bf0aa2f024e0d0183f82a2aaf6798bc26d914b2839f0a335662f9b6776f0368ded893bdbd911774cfe4e7182a3963400cd53f51dc25edc5f7f5eb29a0084b6dd;
设备标识为:20010000001;
解密成功得到的解密结果为:{
"active_code":"20210518", //激活码
"merchant_id":"000063066004189990000242", //商户号
};
根据设备标识和加密策略中的加密算法、签名算法生成第一明文数据;
例如第一明文数据为:
{
"did":"20010000001",
"encrypt_type":"sm4",
"mid":"jfty",
"msg_code":"siip_scanset_activation",
"pid":" F65",
"req_time":"20211112110436",
"seq_no":"20211112110436201",
"sign_type":"sm2",
"version":"4.0.0",
}
根据加密策略中的sm2签名算法对第一明文数据进行签名得到第一签名值;
例如第一签名值为:
"signature":"3045022100B475C5F738652E8753231840B26F8A8D31979366FFF666E3D91DFEDE10D107410220777E12931A40666BE4A9E6793C991B0030BB6A69450BD82CE956DE73F893A10B";
根据第一明文数据和第一签名值生成设备激活指令的指令头;
例如设备激活指令的指令头为:
"AgwHead":{
"did":"20010000001",
"encrypt_type":"sm4",
"mid":"jfty",
"msg_code":"siip_scanset_activation",
"pid":" F65",
"req_time":"20211112110436",
"seq_no":"20211112110436201",
"sign_type":"sm2",
"version":"4.0.0",
"signature":"3045022100B475C5F738652E8753231840B26F8A8D31979366FFF666E3D91DFEDE10D107410220777E12931A40666BE4A9E6793C991B0030BB6A69450BD82CE956DE73F893A10B"
};
根据解密结果中的激活码和加密策略中的加密密钥生成第二明文数据;
例如第二明文数据为:
"AgwBody":{
"auth_code":"20210518",
"set_public_key":" 04bf0aa2f024e0d0183f82a2aaf6798bc26d914b2839f0a335662f9b6776f0368ded893bdbd911774cfe4e7182a3963400cd53f51dc25edc5f7f5eb29a0084b6dd"
};
根据加密策略中的sm4加密算法对第二明文数据进行加密得到第一加密结果;
例如,第一加密结果为:
"AgwBody": "88AE865B31E6CBD0ABAD3A2A730DC5B8CA98E980A30354D3F37F6A465913D9B844D5A2CA1A48C7DDF779826868DB3EFA936BCB3F1879F12F745DBF7F47DE57BBA84F3579C1EBB583D990D16A5DC33EDCEE9605D83D6BC38813E1E50861A19D5BB0E30173459BD6718767E39BBB49C962FE7FB5BA0F2FDDBD6EB500B79EA52C20C9CE1C1182EFE7C53F1358CA0F79EAC754E74C495E7F1CD35380DAA0BA9A36744DFEE13ED5A844963A638333ED395F5B20116F1B58EE8208B9919FE0B7445B1B15CA7BDEB0D53F574803D89FD67D2A8BCCA6011C3C516C59E78137CC89F8875F798C08FB18DA7F3175B17360DA14CB6AB5363442ACB94607C3E162A422A570BA8C74EE729368DBCFA7D7C39C08F1F6ED";
推送服务器根据第一加密结果设置数据域,根据设备激活指令的指令头和数据域生成设备激活指令并发送给第一业务系统;
例如,根据设备激活指令的指令头和数据域生成设备激活指令为:
{
"AgwHead": {
"did": "20010000001",
"encrypt_type": "sm4",
"mid": "jfty",
"msg_code": "siip_scanset_activation",
"pid": "F65",
"req_time": "20211112110436",
"seq_no": "20211112110436201",
"sign_type": "sm2",
"version": "4.0.0",
"signature": "3045022100B475C5F738652E8753231840B26F8A8D31979366FFF666E3D91DFEDE10D107410220777E12931A40666BE4A9E6793C991B0030BB6A69450BD82CE956DE73F893A10B"
},
"AgwBody": "88AE865B31E6CBD0ABAD3A2A730DC5B8CA98E980A30354D3F37F6A465913D9B844D5A2CA1A48C7DDF779826868DB3EFA936BCB3F1879F12F745DBF7F47DE57BBA84F3579C1EBB583D990D16A5DC33EDCEE9605D83D6BC38813E1E50861A19D5BB0E30173459BD6718767E39BBB49C962FE7FB5BA0F2FDDBD6EB500B79EA52C20C9CE1C1182EFE7C53F1358CA0F79EAC754E74C495E7F1CD35380DAA0BA9A36744DFEE13ED5A844963A638333ED395F5B20116F1B58EE8208B9919FE0B7445B1B15CA7BDEB0D53F574803D89FD67D2A8BCCA6011C3C516C59E78137CC89F8875F798C08FB18DA7F3175B17360DA14CB6AB5363442ACB94607C3E162A422A570BA8C74EE729368DBCFA7D7C39C08F1F6ED"
}
(二)如本实施例中的业务系统为第二业务系统,该步骤中从企业信息中获取加密策略包括:摘要算法MD5,处理过程使用的密钥为业务系统密钥;
例如,业务系统密钥为:jAl2o4OSsNakzUfgaefB5lhgPG44HJA;
设备标识为:6201F65A99900001;
解密成功得到的解密结果为:{
"active_code":"20210518", //激活码
"merchant_id":"000063066004189990000242", //商户号
};
根据设备标识和解密结果中的商户号生成设备激活指令的指令头;
例如,生成的设备激活指令的指令头为:{
"accessId":"c1d76445ea384e22899a2b1409f44f8c",
"deviceId":"6201F65A99900001",
"mchtId":"000063066004189990000242",
"timestamp":"20220215151814",
"longitude":"116.351768",
"latitude":"40.020809"
}
推送服务器根据MD5摘要算法使用业务系统密钥对设备激活指令的指令头进行签名得到第二签名值,根据第二签名值设置设备激活指令的数据域,根据设备激活指令的指令头和数据域生成设备激活指令并发送给第二业务系统;
例如,第二签名值为:11D27A972C0BA429BEDECB27697CC5F3;
根据设备激活指令的指令头和数据域生成设备激活指令为:
{
"accessId":"c1d76445ea384e22899a2b1409f44f8c",
"deviceId":"6201F65A99900001",
"mchtId":"000063066004189990000242",
"timestamp":"20220215151814",
"longitude":"116.351768",
"latitude":"40.020809",
"sign":"11D27A972C0BA429BEDECB27697CC5F3"
}
步骤210:业务系统对接收到的设备激活指令进行解析,根据解析得到的设备标识获取对应加密策略,根据加密策略对接收到的设备激活指令进行验证,如验证成功则执行步骤211,否则生成激活失败信息,根据加密策略对激活失败信息进行处理并将处理结果返回给推送服务器,执行步骤212;
可选的,在本实施例中,如业务系统为第一业务系统,步骤210包括:第一业务系统对接收到的设备激活指令进行解析得到指令头和数据域,根据指令头中的设备标识获取对应的加密策略(包括:加密算法为sm4,签名算法为sm2,设备密钥),根据加密策略中的设备密钥对指令头中的签名值进行解密得到第一解密值,根据加密策略中的签名算法对指令头中除签名值外的其他数据进行摘要运算,判断摘要运算结果与第一解密值是否匹配,如匹配则根据设备密钥和加密算法对数据域进行解密,如解密成功则从解密结果中获取激活码,判断获取的激活码与保存的激活码是否一致,是则验证成功,否则验证失败,如解密失败则验证失败,如不匹配则验证失败;
可选的,在本实施例中,如业务系统为第二业务系统,步骤210包括:第二业务系统对接收到的设备激活指令进行解析得到指令头和数据域,根据指令头中的设备标识获取的对应加密策略(包括摘要算法MD5,摘要计算过程使用的密钥为业务系统密钥),对指令头进行MD5摘要计算,使用加密策略中的业务系统密钥对数据域进行解密,判断解密结果与摘要计算结果是否一致,是则验证成功,否则验证失败;
例如,该步骤中的激活失败信息为:{
"code":0,
"msg":"" //错误信息
}
步骤211:业务系统生成设备激活成功信息,根据加密策略对设备激活成功信息进行处理,并将激活处理结果返回给推送服务器,执行步骤212;
例如,第一业务系统生成的设备激活成功信息为:
{
"AgwHead": {
"seq_no": "SC2870000000009202111091433305",
"resp_time": "20211109145442",
"msg_code": "siip_scanset_activation",
"resp_code": "agw.success",
"resp_msg": "success",
},
"AgwBody": {
"result_msg": "success",
"mercode": "806701558140012",
"result_code": "0000000",
"termcode": "SC2870000000004",
"sign_type": "sm2",
"primary_key": "71b31bc0ae9264580d4846fe7f79d2fc0227dc23debd3d01c45fdecd0177ed94531346e54a9cb52d1d349f909e1007feba9e2e8961453329d6498850b2835a18947284650dfb8885984af57ae44115721bcd5e9bf0f04e3bbe0f926b4ae0d358f8b7f7791102869664a9da088c7c32230cd90399a35ae4a53f77e7849e9f983e",
}
}
第一业务系统给推送服务器返回的激活处理结果为:
{
"AgwHead": {
"seq_no": "SC2870000000009202111091433305",
"resp_time": "20211109145442",
"msg_code": "siip_scanset_activation",
"resp_code": "agw.success",
"resp_msg": "success",
"sign": "fe7f79d2fc0227dc23debd3d01c45fdecd0177ed94531346e54a9cb52d1d349f909e1007feba9e2e8961453329d6498850b2835a18947284650dfb8885984af57ae44115721bcd5e9bf0f04e3bbe0f926b4"
},
"AgwBody":"U2FsdGVkX18Q32Ig09z+lKDaGGBJxSleTBQLsA9EyYKmzAEQeW53biC8Y7kT/kMM7EtAz7pjV4qTe0/Pp2Inyt3dM9RNAj/sy7VJh4vRCemFEL3PUoAUfUQdS7FBipXgSa1JnOJ9zCw7mSj/umD2b2jfZJYhr9HyYVff1fy1+HuoY2E0KMSmDsBD+U/wJXsDGDIkKJkLaW8oJmbio2v6QMJsfCXkGK/qB5N9dunX/IYOVQ8ljN2pXo8bs75TgI+nzGDjByz/7lPrdfxisfg7AFObemip5Ey+Fv8ahvVbJZO+dFVRzzRKE08+eg49n/Ac/hh4jhGyycAcFqK7+e9wClqgD7HtXmfcFAGnJ+bUlsvX6vbPbJk8OI20tatifGkSrw4F0mqeqdE7Ex5KvHzHt0/U5j3dNxq7W9qUx59GuO2G5uXfz0fay+rGJR6JUUsGGPM7SGx7aopAtpggq2tyFYXhqhyQU9aO8vceYByAhu3gzr/h31bZ/b+QLcVKkDnudjeCgAn52xrS1MqS+C10PXghiHFeVI5jWVKeH11oOtOA91lkvxqx7Eay42OrEebu3Xf/Y4Yj51FuKlC7MDDRJGKe7gk8eY70Rv5U9Z/Z2A6xSo3LCdVBivdxXfuDxgiRyFraXsIKQhm9e7Qa3v0W1A=="
}
或,第二业务系统生成的生成的激活成功信息为:
{
"code": 100,
"message": "激活成功",
"data":
}
第二业务系统给推送服务器返回的激活处理结果为:
{
"code": 100,
"message": "激活成功",
"data": {
}
"sign":"20D27A972C0BA429BEDECB27697CF561"
}
步骤212:推送服务器对接收到激活处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对激活处理结果的解析结果进行验证,如验证成功则从激活处理结果的解析结果中获取激活结果,根据激活结果组装激活响应,使用设备密钥对激活响应进行加密,并将激活响应密文返回给终端设备,执行步骤213,如验证失败则生成包含激活失败信息的激活响应,使用设备密钥对激活响应进行加密,并将激活响应密文返回给终端设备,执行步骤213;
可选的,在本实施例中,如业务系统为第一业务系统,则推送服务器对接收到处理结果进行解析,根据加密策略对解析结果进行验证,包括:推送服务器对接收到的激活处理结果进行解析得到指令头和数据域,根据指令头中的设备标识获取对应的加密策略(包括:加密算法为sm4,签名算法为sm2,设备密钥),根据加密策略中的设备密钥对指令头中的签名值进行解密得到第二解密值,根据加密策略中的签名算法对指令头中除签名值外的其他数据进行摘要运算,判断摘要运算结果与第二解密值是否匹配,如匹配则根据设备密钥和加密算法对数据域进行解密,如解密成功则验证成功,如解密失败则验证失败,如不匹配则验证失败;
可选的,在本实施例中,如业务系统为第二业务系统,则推送服务器对接收到处理结果进行解析,根据加密策略对解析结果进行验证,包括:推送服务器对接收到的激活处理结果进行解析得到指令头和数据域,根据指令头中的设备标识获取对应的加密策略(包括摘要算法MD5,摘要计算过程使用的密钥为业务系统密钥),对指令头进行MD5摘要计算,使用加密策略中的业务系统密钥对数据域进行解密,判断解密结果与摘要计算结果是否一致,是则验证成功,否则验证失败;
例如,推送服务器接收到第二业务系统返回的处理结果,则步骤中获取的激活结果为:"message": "激活成功";
激活响应为:
{
"code": 0
}
使用设备密钥对激活响应进行加密生成的激活响应密文为:U2FsdGVkX1+3OenNGxbPzTs6UI2ZeOkuIf9mEv1h2oU=;
步骤213:终端设备使用设备密钥对接收到的激活响应密文进行解密,根据解密结果判断自身设备是否激活成功,是则执行步骤214,否则报错;
具体的,在本实施例中,根据解密结果判断自身设备是否激活成功,包括:判断解密结果是否为预设字符,是则激活成功,否则激活失败;
例如,预设字符为0;
在本实施例中,步骤213中判断自身设备激活成功后还包括:终端设备根据保存的设备所属的企业信息显示预先设置好的业务处理画面,执行步骤214;
可选的,不同业务系统下单的终端设备的业务处理画面不同,可以为图片或动画;
步骤214:终端设备等待商户输入业务信息,当接收到商户输入的业务信息时根据业务信息生成预处理请求,使用设备密钥对预处理请求进行加密,并将预处理请求密文发送给推送服务器;
可选的,在本实施例中,商户可通过终端设备的键盘输入业务信息或通过与终端设备连接的客户端的键盘输入业务信息;
在本实施例中,业务信息包括业务消耗量;
例如,预处理请求为:
{
"amount":"100",
}
预处理请求密文为;U2FsdGVkX19iI8WciYXX4X5gEJjrDzJuZiNMr5xjYK41H1Z91qTdzR6J3a5tEpma;
步骤215:推送服务器获取当前长连接的设备标识,根据设备标识从数据库中获取对应的设备密钥,使用设备密钥对接收到的预处理请求密文进行解密,根据设备标识获取提前预置的对应的企业信息,从企业信息中获取加密策略,根据加密策略对解密成功得到的业务信息、设备标识进行处理,根据处理结果生成预处理指令,并将预处理指令发送给业务系统;
(一)本实施例中的业务系统为第一业务系统,从企业信息中获取的加密策略包括:加密算法为sm4,签名算法为sm2,加密过程使用的密钥是工作密钥;该工作密钥为推送服务器与第一业务系统预先协商各自保存下来的;
根据处理结果生成预处理指令发送给业务系统,包括:根据设备标识和加密策略中的加密算法、签名算法生成预处理指令的指令头中的待签名数据,使用签名算法sm2对待签名数据进行签名得到签名结果,根据待签名数据和签名结果生成指令头,根据设备标识和解密成功的业务信息生成预处理指令中的数据域明文,使用加密算法sm4对数据域明文进行加密,将加密结果作为预处理指令中的数据域数据,根据指令头和数据域数据组装成预处理指令并发送给第一业务系统;
(二)如本实施例中的业务系统为第二业务系统,该步骤中从企业信息中获取加密策略包括:摘要算法MD5,处理过程使用的密钥是业务系统密钥;
根据处理结果生成预处理指令发送给业务系统,包括:根据设备标识和预处理请求中的业务信息生成预处理指令的指令头,根据MD5摘要算法使用业务系统密钥对预处理指令的指令头进行签名得到第四签名值,根据第四签名值设置预处理指令的数据域,根据预处理指令的指令头和数据域生成预处理指令并发送给第二业务系统;
步骤216:业务系统解析接收到的预处理指令,根据预处理指令的解析结果中的设备标识获取对应的加密策略,根据加密策略对接收到的预处理指令进行验证,如验证成功则根据预处理指令的解析结果中的业务信息生成二维码,根据加密策略对二维码进行处理得到预处理结果,执行步骤217,如验证失败则生成预处理失败信息,根据加密策略对预处理失败信息进行处理得到预处理结果,并将预处理结果返回给推送服务器,执行步骤218;
可选的,在本实施例中,如业务系统为第一业务系统,步骤216包括:第一业务系统对接收到的预处理指令进行解析得到指令头和数据域,根据指令头中的设备标识获取对应的加密策略(包括:加密算法为sm4,签名算法为sm2,设备密钥),根据加密策略中的设备密钥对指令头中的签名值进行解密,根据加密策略中的签名算法对指令头中除签名值外的其他数据进行摘要运算,判断摘要运算结果与解密结果是否匹配,如匹配则根据设备密钥和加密算法对数据域进行解密,如解密成功则从解密结果中提取业务信息,如解密失败则验证失败,如不匹配则验证失败;
可选的,在本实施例中,如业务系统为第二业务系统,步骤216包括:第二业务系统对接收到的预处理指令进行解析得到指令头和数据域,根据指令头中的设备标识获取的对应加密策略(包括摘要算法MD5,摘要计算过程使用的密钥为业务系统密钥),对指令头进行MD5摘要计算,使用加密策略中的业务系统密钥对数据域进行解密,判断解密结果与摘要计算结果是否一致,是则验证成功,否则验证失败;
例如,该步骤中的业务信息为:"amount":"100";
生成的二维码为:https://qr.alipay.com/p1uyx98cusndsey532b;
如业务系统为第一业务系统,则步骤216中得到的预处理结果为:
{
"AgwHead":{
"seq_no":"20211112110436201",
"resp_time":"20211112110459",
"msg_code":" siip_order_precreate",
"resp_code":"agw.success",
"resp_msg":"请求成功",
"sign":"BDlVeKeW6QmS1D+7d2LsK3YNjwneTEosLiKEdEKFvA9fLzryjknMx2aiOKk95Tda9O1zSxXPI/YYcLVWHMvU0g8yh5E4ZnOaOy7MyIK1306mqKpVIpZwMTUmUxI2S0VyIWIWA1MU6o/+erLKw5GQCXbBviqCbaJuMlmWIMMNEVy0l10GFIGT4/giWNNi2kWGPSe5UPuRnWHX/SPnyPupDBi8JX45ViNTY5uKJMj1IqvRWKFzZ3g6vbGdERc8eWaHbzZIxzpECC93FEAq2N8YwOaGnwEmCNuk0cyfPcczEfeO3nU12Kr39EI/oqpRzTn+QK7JaxcjUidCqUS47r8jJOvbSdFiwJJcjpV2CA=="
},
"AgwBody":"BHKDR0LEjOtY+mzIfAWoqZ4J3rVkLKkf+3BvBD8D4t0XqMcC+HEsVDV2/nBn7cNzhwDTAK1SFShd9GH6FOHh9HxhbAcskvKiyZQZZD5PdJSG7HYWb1V6Miknn4vDmQtA/n/h1Fb4xrfSWnONUINxi72aEqsw10kEa7XueymR7C4bLchSTB9SrwXbSX6sjDpb0p3at9AAGaC0urLgZQ97NTgouqfUXKrC3egVJVT8yuxGXUSGbL44miDEpySd4V9WJG/gt7YCFbUjQTQWTJ+lhESWTtYOSdrXbjScZiydV5d9q7kZfwZE9CQX6G6OSL+UsFmCB/jkJwXE1U/LZLElitgpwGfwbJHJUSJwHQ=="
} ;
如业务系统为第二业务系统,则步骤216中得到的预处理结果为:
{
"code": 200,
"message": "成功",
"data": {
"orderNo": "213214234354546565",
"qrcode": " https://qr.alipay.com/p1uyx98cusndsey532c"
}
"sign": "a649214474953a4d"
};
步骤217:业务系统将预处理结果返回给推送服务器,执行步骤218;
步骤218:推送服务器解析接收到的预处理结果,获取当前长连接的设备标识,根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据加密策略和预处理结果的解析结果对预处理结果进行验证,如验证成功则根据设备标识获取对应的设备密钥,使用设备密钥对预处理结果的解析结果进行加密得到预处理响应密文,并将预处理响应密文返回给终端设备,执行步骤219,如验证失败则生成预处理失败信息,使用设备密钥对预处理失败信息进行加密得到预处理响应密文,并将预处理响应密文返回给终端设备,执行步骤219;
例如,该步骤中的预处理结果的解析结果为:
{
"code":0,
"msg":"成功", "qrcode":"https://qr.alipay.com/p1uyx98cusndsey532b",
"expires":300, //终端设备页面显示倒计时
"bank_order_no":"11111112"
};
该步骤中的预处理响应密文为:D+0Akjxlm4vOrgcuPmcJwBjaXBXLfj6nGiLezvvKanoF/rf0E1daWuPDtBz4S1JdaRLLu4tMsuc+gQOPTKoAGyxR93/sc4RrHlLV7zfAmZul70pNLmaXmqqaY8G3sYJgoWAfGcXCJSfKAUAbEBZqO/xWK4BCO11DkzygsjNBkLgPy5GZdz68xetnJ8qOSkLMQWqwEodN1ymrMuQZQF7D2hnUuTvE0UvU4oPl0YEsaMZJuXKENNNFo5gHooc/lLox;
具体的,本实施例中步骤218中根据加密策略和预处理结果的解析结果对预处理结果进行验证的实现过程可参照步骤212中的验证过程,在此不再赘述;
步骤219:终端设备使用设备密钥对接收到的预处理响应密文进行解密,如解密成功则根据解密结果判断预处理是否成功,是则从解密结果中获取二维码并显示,执行步骤220,否则报错,如解密失败则报错;
可选的,在本实施例中,显示二维码后还包括:提示用户进行扫码处理业务,例如通过语音提示用户进行扫码处理业务;
在本实施例中,终端设备显示二维码后用户使用用户设备(例如手机、平板等)扫描二维码并输入密码,用户设备将业务数据发送给业务系统;
步骤220:当业务系统收到用户设备的业务数据时,对业务数据进行脱敏处理并生成业务序号,根据脱敏处理结果和业务序号组装业务回调通知,将业务回调通知返回给终端设备;
具体的,在本实施例中,对业务数据进行脱敏处理,包括但不限于:将业务数据中的商户信息(包括商户账号、柜台号)剔除;
步骤221:业务系统对脱敏处理结果进行加工处理得到第二处理结果,根据加密策略对第二处理结果和业务序号进行处理得到业务处理结果,并将业务处理结果发送给推送服务器;
具体的,在本实施例中,业务系统对脱敏处理结果进行加工处理得到第二处理结果,包括:从用户账户中扣除业务消耗量,根据业务消耗量更新商户(终端设备使用者)账户;
例如,如业务系统为第一业务系统,则该步骤中的业务处理结果的指令头中的待签名数据为:
"AgwHead":{
"seq_no":"20211112110436201",
"resp_time":"20211112110459",
"msg_code":"siip_order_result_query",
"resp_code":"agw.success",
"resp_msg":"成功"
};
指令头中的签名数据为:"sign":"BLGVAfDcFzXyW1i6N5mRXniPflFecpxiJ3jRs97bUtELIFA7BflDeSKdx6uh9QQPralLHbAr1oz/gtRvQrA8+zVC0qY2wqRaiHEcvWfQCnb2qR56WCyV9CcJPfrUu9UXpH4ZGoyuj/CAwZFeejN9eBad/Y07WfyEDhm1ZM25vgcRKqGJTYKLvv5Qh32m3p426+mmCd0AFL/qSO3caZ088wjqL9kBBBYSKARZCp6MHVptwGGQWCh7h09l0gcAiupaGmEVYEDKksKYBVnUnJTM4JQcfZih2RCu6Jbrg/GR5cY3qhKzxqyjMAcF9+ofp/pCJfo3GeijnShLfPj3+ca3atIkaJE=";
数据域的明文数据为:
"AgwBody":{
"result_code":"00000",
"result_msg":"成功",
"ext_order_no":"11111112",
"main_order_no":"DTKSpJQZb202208021112124",
"termcode":"20010000001",
"total_amt":"100",
"no_discount_amt":"100",
"order_status":"success",
"pay_type":"第一处理渠道",
"pay_time":"202208021112231",
"user_real_pay_amt":"100",
"channel_discount_amt":"0",
"fee":"0"
};
数据域的密文:
"AgwBody":"bEDZGi9YZjuEkTUHYfz0Q3hWLjIu7qV1ZhjiVWTRiVrlQx+lTGxZNbtjvtHhn33sA9AXhJEDk3ANE4ogzIoSbp7diZ38KKo1dpQRxHi0w/WNnXd32h6rFoT/Hokyejat7LcHvIZYT1q3jhfjz4TPq0FZa1sZKAH9JWeY/mN934sjJefWv2r7awxoy8hf/9o6L42WgkW2j85j87Uk1KtSbT1+94NaORP1rX8Qp8IIFQ92XPfqXk8HaLJnsFY5/I6jufzHUo+DtFGoIfVBornCkMdjBz1h0I/iEoGMBwv1q0NoZIMObDVKtKtSVfa+Pu0Pgu0qxWkNfag6sxIPkGNkC6kuFW9WPcxXnXTRA0Vqq+QdSdlca/Yy67L9K24Th4a8UOdOPP2WifTpusHY7ERjfQNIN0T8hxigJDAzJwq4Tr/SKO2lz58suT3cONIorBDPxW6bAOFr9FVjWFBf9K7TH0XfX1fXfKbWFtKGEopOivY="
} ;
最终生成的业务处理结果为:
{
"AgwHead":{
"seq_no":"20211112110436201",
"resp_time":"20211112110459",
"msg_code":"siip_order_result_query",
"resp_code":"agw.success",
"resp_msg":"成功",
"sign":"BLGVAfDcFzXyW1i6N5mRXniPflFecpxiJ3jRs97bUtELIFA7BflDeSKdx6uh9QQPralLHbAr1oz/gtRvQrA8+zVC0qY2wqRaiHEcvWfQCnb2qR56WCyV9CcJPfrUu9UXpH4ZGoyuj/CAwZFeejN9eBad/Y07WfyEDhm1ZM25vgcRKqGJTYKLvv5Qh32m3p426+mmCd0AFL/qSO3caZ088wjqL9kBBBYSKARZCp6MHVptwGGQWCh7h09l0gcAiupaGmEVYEDKksKYBVnUnJTM4JQcfZih2RCu6Jbrg/GR5cY3qhKzxqyjMAcF9+ofp/pCJfo3GeijnShLfPj3+ca3atIkaJE="
},
"AgwBody":"bEDZGi9YZjuEkTUHYfz0Q3hWLjIu7qV1ZhjiVWTRiVrlQx+lTGxZNbtjvtHhn33sA9AXhJEDk3ANE4ogzIoSbp7diZ38KKo1dpQRxHi0w/WNnXd32h6rFoT/Hokyejat7LcHvIZYT1q3jhfjz4TPq0FZa1sZKAH9JWeY/mN934sjJefWv2r7awxoy8hf/9o6L42WgkW2j85j87Uk1KtSbT1+94NaORP1rX8Qp8IIFQ92XPfqXk8HaLJnsFY5/I6jufzHUo+DtFGoIfVBornCkMdjBz1h0I/iEoGMBwv1q0NoZIMObDVKtKtSVfa+Pu0Pgu0qxWkNfag6sxIPkGNkC6kuFW9WPcxXnXTRA0Vqq+QdSdlca/Yy67L9K24Th4a8UOdOPP2WifTpusHY7ERjfQNIN0T8hxigJDAzJwq4Tr/SKO2lz58suT3cONIorBDPxW6bAOFr9FVjWFBf9K7TH0XfX1fXfKbWFtKGEopOivY="
} ;
如业务系统为第二业务系统,则该步骤中的业务处理结果的指令头为:
"code": 200,
"message": "业务处理成功",
"data": {
"orderNo": "11111112",
"tradeStatus": 1,
"payedMoney": "100",
"discMoney": "0"
}
数据域的签名结果为:"sign": "87c3d474fe141d3f";
最终生成的业务处理结果为:
{
"code": 200,
"message": "业务处理成功",
"data": {
"orderNo": "11111112",
"tradeStatus": 1,
"payedMoney": "100",
"discMoney": "0"
}
"sign": "87c3d474fe141d3f"
};
步骤222:推送服务器对接收到的业务处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息和设备密钥,从企业信息中获取加密策略,根据加密策略和业务处理结果的解析结果对业务处理结果进行验证,如验证成功则执行步骤223,如验证失败则生成业务处理失败响应,使用设备密钥对业务处理失败响应进行加密得到业务处理响应密文,并将业务处理响应密文返回给终端设备,执行步骤224;
步骤223:推送服务器根据业务处理结果的解析结果生成业务处理响应,使用设备密钥对业务处理响应进行加密并将业务处理响应密文发送给终端设备,执行步骤224;
具体的,在本实施例中,根据业务处理结果的解析结果生成业务处理响应,包括:根据解析得到的业务处理方式和业务消耗量、业务处理状态生成业务处理响应;
步骤224:终端设备使用设备密钥对接收到业务处理响应密文进行解密,从解密结果中提取第一处理结果并进行播报;
例如,如从解密结果中提取的第一处理结果为:业务处理成功,则播报“成功消耗XXX量”;如从解密结果中提取的第一处理结果为:业务处理失败,则播报“业务处理失败”。
可选的,在本实施例中,步骤214-步骤224可替换为:
步骤L1:终端设备接收到商户输入的业务信息;
在本实施例中,步骤L1之后商户提醒用户出示用户设备的二维码;用户操作用户设备显示待处理信息,并靠近终端设备,终端设备扫描用户设备上显示的待处理信息;
步骤L2:当终端设备通过扫描用户设备获取到待处理信息时,根据待处理信息生成业务处理请求,使用设备密钥对业务处理请求进行加密并将业务处理请求密文发送给推送服务器;
例如,在本实施例中,生成的业务处理请求为:
{
"amount":"100",
"qrcode":"https://qr.alipay.com/p1uyx98cusndsey532b"
}
加密生成的业务处理请求密文为:U2FsdGVkX1/vc93FybTafGnF2TlNje/j8QYYhfqeIz6P/qpXbsWy7E4mkaCXpKzb;
步骤L3:推送服务器获取当前长连接的设备标识,根据设备标识从数据库中获取对应的设备密钥,使用设备密钥对接收到的业务处理请求密文进行解密,如解密成功则根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对解密成功得到的待处理信息和设备标识进行处理生成业务处理指令,执行步骤L4,否则生成业务处理失败响应,使用设备密钥对业务处理失败响应进行加密生成业务处理响应密文,并将业务处理响应密文返回给终端设备,执行步骤L10;
可选的,在本实施例中,不同业务系统对应的加密策略可不同,同一业务系统对于不同操作(例如激活、处理、还原)使用的加密策略可以相同也可以不同,下面以第一业务系统和第二业务系统为例进行详述不同操作的实现过程;
(一)本实施例中的业务系统为第一业务系统,从企业信息中获取的加密策略包括:加密算法为sm4,签名算法为sm2,加密过程使用的密钥是工作密钥;该工作密钥为推送服务器与第一业务系统预先协商各自保存下来的;
例如,工作密钥为:71b31bc0ae9264580d4846fe7f79d2fc0227dc23debd3d01c45fdecd0177ed94531346e54a9cb52d1d349f909e1007feba9e2e8961453329d6498850b2835a18947284650dfb8885984af57ae44115721bcd5e9bf0f04e3bbe0f926b4ae0d358f8b7f7791102869664a9da088c7c32230cd90399a35ae4a53f77e7849e9f983e;
设备标识为:20010000001;
解密成功得到的业务处理请求为:
{
"amount":"100",
"qrcode":https://qr.alipay.com/p1uyx98cusndsey532b"
}
根据设备标识和加密策略中的加密算法、签名算法生成第三明文数据;
例如,第三明文数据为:
{
"did":"20010000001",
"encrypt_type":"sm4",
"mid":"jfty",
"msg_code":"siip_order_create_and_pay",
"pid":"QE60",
"req_time":"20211112110660",
"seq_no":"20211112110436203",
"sign_type":"sm2",
"version":"4.0.0",
}
根据加密策略中的sm2签名算法对第三明文数据进行签名得到第三签名值;
例如,第三签名值为:
"signature":" 3045022100893ff44bcda40005a2fea5ea3fd3fb7ef8e48bf821c248bd63a6b8371fad9bf402202295a67443aa156e26bab3d5ae16b11ac3868fa20ed5974c69ef7723a2a26b4e";
根据第三明文数据和第三签名值生成业务处理指令的指令头;
例如,业务处理指令的指令头为:
"AgwHead":{
"did":"20010000001",
"encrypt_type":"sm4",
"mid":"jfty",
"msg_code":"siip_order_create_and_pay",
"pid":"QE60",
"req_time":"20211112110660",
"seq_no":"20211112110436203",
"sign_type":"sm2",
"version":"4.0.0",
"signature":" 3045022100893ff44bcda40005a2fea5ea3fd3fb7ef8e48bf821c248bd63a6b8371fad9bf402202295a67443aa156e26bab3d5ae16b11ac3868fa20ed5974c69ef7723a2a26b4e"
};
根据解密得到的待处理信息和业务序号、设备标识生成第四明文数据;
例如,第四明文数据为:
"AgwBody":{
"ext_order_no":"2001000000120210702144038002",
"total_amt":"100",
"no_discount_amt":"100",
"auth_code":"https://qr.alipay.com/p1uyx98cusndsey532b",
"total_amt":"100",
"longitude":"116.351768",
"latitude":"40.020809",
"network_license":"P3100",
"device_type":"10",
"serial_num":"20010000001",
"encrypt_rand_num":"351768",
"secret_text":" ewogICAgInB1c2hfdXNlIjoxLAogICAgInNlcnZlcl9ob3N0IjogIjE5Mi4xNjguMjUuNjMiLAogICAgInNlcnZlcl9wb3J0IjogMTg4MywKCg=="
};
根据加密策略中的sm4加密算法使用工作密钥对第四明文数据进行加密得到第二加密结果;
例如,第二加密结果为:
"AgwBody": "0a6bbeae995e85c67301df4b62fbaf62fe08f293cbeaa3dacf175955d27ad77398cecbeef57fe7a1b670f6adadfd24519dcd975f44b22e062a19e11e1d5094c0a315bffe9c8dce055bee7bc1499faefaf78b78e81ba2163aa4f0ff568e57e123cf53acdfe7e8eebbb82bfa2878205b57a069402a944332beeda8de5af241cfe08abe41641df28f5d87951db76e555b61daf7aae766e161c67f0b327d2c4788d7b165dc52a7b79980acfdbca9aa5173e032f328f041cecfe080b9d4156b56eed0d13851ed8584ad91bb1612997893a2039cdd084989efcd754f17c7b6ffd5c9b9d84391364a999e1077df6c123d1bb36a2c76c8c022ed8934773788f2982f3ba447603505e1a3e918aac4d7b41d7b621af62ed41d11b412a546459c80c83fd0297fd8085926614dbd3f392d86ee7a8542ff7f85681d4e7a47a6ccfd2a298e31a78f506efdfd05c1ba02dcc486eec25acc4e1517f5feaaf6008342badef94aeb73891b61f79640bcb3b35fd2126de63df9ead4416bfaab034974ddb87a0ca070b10eb64824f6198d88f7a5a7107690aa50a05da0aee473a307e6f3d0ca29280fd6eba92d68c762d6b027b0c85da89ac9193e0f67372b37a71fdc53310565e29079";
推送服务器根据第二加密结果设置数据域,根据业务处理指令的指令头和数据域生成业务处理指令;
例如,生成的业务处理指令为:
{
"AgwHead":{
"did":"20010000001",
"encrypt_type":"sm4",
"mid":"jfty",
"msg_code":"siip_order_create_and_pay",
"pid":"QE60",
"req_time":"20211112110660",
"seq_no":"20211112110436203",
"sign_type":"sm2",
"version":"4.0.0",
"signature":" 3045022100893ff44bcda40005a2fea5ea3fd3fb7ef8e48bf821c248bd63a6b8371fad9bf402202295a67443aa156e26bab3d5ae16b11ac3868fa20ed5974c69ef7723a2a26b4e"
},
"AgwBody": "0a6bbeae995e85c67301df4b62fbaf62fe08f293cbeaa3dacf175955d27ad77398cecbeef57fe7a1b670f6adadfd24519dcd975f44b22e062a19e11e1d5094c0a315bffe9c8dce055bee7bc1499faefaf78b78e81ba2163aa4f0ff568e57e123cf53acdfe7e8eebbb82bfa2878205b57a069402a944332beeda8de5af241cfe08abe41641df28f5d87951db76e555b61daf7aae766e161c67f0b327d2c4788d7b165dc52a7b79980acfdbca9aa5173e032f328f041cecfe080b9d4156b56eed0d13851ed8584ad91bb1612997893a2039cdd084989efcd754f17c7b6ffd5c9b9d84391364a999e1077df6c123d1bb36a2c76c8c022ed8934773788f2982f3ba447603505e1a3e918aac4d7b41d7b621af62ed41d11b412a546459c80c83fd0297fd8085926614dbd3f392d86ee7a8542ff7f85681d4e7a47a6ccfd2a298e31a78f506efdfd05c1ba02dcc486eec25acc4e1517f5feaaf6008342badef94aeb73891b61f79640bcb3b35fd2126de63df9ead4416bfaab034974ddb87a0ca070b10eb64824f6198d88f7a5a7107690aa50a05da0aee473a307e6f3d0ca29280fd6eba92d68c762d6b027b0c85da89ac9193e0f67372b37a71fdc53310565e29079"
};
(二)如本实施例中的业务系统为第二业务系统,该步骤中从企业信息中获取加密策略包括:摘要算法MD5,处理过程使用的密钥是业务系统密钥;
例如,业务系统密钥为: jAl2o4OSsNakzUfgae_fB5lhgPG44HJA;
设备标识为:6201F65A99900001;
解密成功得到的业务处理请求为:
{
"amount":"100",
"qrcode":"https://qr.alipay.com/p1uyx98cusndsey532b"
}
根据设备标识和业务处理请求中的业务信息和业务序号生成业务处理指令的指令头;
例如,生成的业务处理指令的指令头为:
{
"accessId":"c1d76445ea384e22899a2b1409f44f8c",
"deviceId":"6201F65A99900001",
"money":"100",
"paycode":https://qr.alipay.com/p1uyx98cusndsey532b
"timestamp":"20220215151820",
"longitude":"116.351768",
"latitude":"40.020809"
}
推送服务器根据MD5摘要算法使用业务系统密钥对业务处理指令的指令头进行签名得到第四签名值,根据第四签名值设置业务处理指令的数据域,根据业务处理指令的指令头和数据域生成业务处理指令;
例如,第四签名值为:
"sign":"442F3D9B2B4EF59B4CE60774A6EFD205";
生成的业务处理指令为:
{
"accessId":"c1d76445ea384e22899a2b1409f44f8c",
"deviceId":"6201F65A99900001",
"money":"100",
"paycode":https://qr.alipay.com/p1uyx98cusndsey532b,
"timestamp":"20220215151820",
"longitude":"116.351768",
"latitude":"40.020809",
"sign":"442F3D9B2B4EF59B4CE60774A6EFD205"
};
步骤L4:推送服务器将业务处理指令发送给业务系统;
步骤L5:业务系统对接收到的业务处理指令进行解析,根据解析得到的设备标识获取对应的加密策略,根据加密策略对接收到的业务处理指令进行验证,如验证成功则执行步骤L6,如验证失败则生成业务处理失败信息,使用加密策略对业务处理失败信息进行处理得到业务处理结果,并将业务处理结果返回给推送服务器,执行步骤L8;
在本实施例中,根据加密策略对接收到的业务处理指令进行验证的实现过程可参照步骤216,在此不再赘述;
步骤L6:业务系统从业务处理指令的解析结果中获取待处理信息,根据待处理信息进行处理得到第一处理结果,使用加密策略对第一处理结果、生成的业务序号和设备标识进行处理生成业务处理结果;
在本实施例中,第一处理结果包含业务处理状态、业务处理模式、业务消耗量;
可选的,该步骤中的根据业务信息进行处理,包括:从用户账户中扣除业务消耗量,根据业务消耗量更新商户(终端设备使用者)账户;
例如,本实施例中个业务系统为第一业务系统,则生成的业务处理结果的指令头中的待签名数据为:
{
"AgwHead":{
"seq_no":"20211112110436201",
"resp_time":"20211112110459",
"msg_code":"siip_order_result_query",
"resp_code":"agw.success",
"resp_msg":"成功"
};
根据指令头中的待签名数据生成的签名数据为:"sign":"BLGVAfDcFzXyW1i6N5mRXniPflFecpxiJ3jRs97bUtELIFA7BflDeSKdx6uh9QQPralLHbAr1oz/gtRvQrA8+zVC0qY2wqRaiHEcvWfQCnb2qR56WCyV9CcJPfrUu9UXpH4ZGoyuj/CAwZFeejN9eBad/Y07WfyEDhm1ZM25vgcRKqGJTYKLvv5Qh32m3p426+mmCd0AFL/qSO3caZ088wjqL9kBBBYSKARZCp6MHVptwGGQWCh7h09l0gcAiupaGmEVYEDKksKYBVnUnJTM4JQcfZih2RCu6Jbrg/GR5cY3qhKzxqyjMAcF9+ofp/pCJfo3GeijnShLfPj3+ca3atIkaJE=";
业务处理结果的指令头为:
"AgwHead":{
"seq_no":"20211112110436201",
"resp_time":"20211112110459",
"msg_code":"siip_order_result_query",
"resp_code":"agw.success",
"resp_msg":"成功",
"sign":"BLGVAfDcFzXyW1i6N5mRXniPflFecpxiJ3jRs97bUtELIFA7BflDeSKdx6uh9QQPralLHbAr1oz/gtRvQrA8+zVC0qY2wqRaiHEcvWfQCnb2qR56WCyV9CcJPfrUu9UXpH4ZGoyuj/CAwZFeejN9eBad/Y07WfyEDhm1ZM25vgcRKqGJTYKLvv5Qh32m3p426+mmCd0AFL/qSO3caZ088wjqL9kBBBYSKARZCp6MHVptwGGQWCh7h09l0gcAiupaGmEVYEDKksKYBVnUnJTM4JQcfZih2RCu6Jbrg/GR5cY3qhKzxqyjMAcF9+ofp/pCJfo3GeijnShLfPj3+ca3atIkaJE=";
指令中数据域的明文数据为:
"AgwBody":{
"result_code":"00000",
"result_msg":"成功",
"ext_order_no":"2001000000120210702144038002",
"main_order_no":"DTKSpJQZb202208021112124",
"termcode":"20010000001",
"total_amt":"100",
"no_discount_amt":"100",
"order_status":"success",
"pay_type":"第一处理渠道",
"pay_time":"202208021112231",
"user_real_pay_amt":"100",
"channel_discount_amt":"0",
"fee":"0"
};
业务处理结果的指令中数据域是根据数据域的明文数据进行加密生成;
例如数据域为:"AgwBody":"bEDZGi9YZjuEkTUHYfz0Q3hWLjIu7qV1ZhjiVWTRiVrlQx+lTGxZNbtjvtHhn33sA9AXhJEDk3ANE4ogzIoSbp7diZ38KKo1dpQRxHi0w/WNnXd32h6rFoT/Hokyejat7LcHvIZYT1q3jhfjz4TPq0FZa1sZKAH9JWeY/mN934sjJefWv2r7awxoy8hf/9o6L42WgkW2j85j87Uk1KtSbT1+94NaORP1rX8Qp8IIFQ92XPfqXk8HaLJnsFY5/I6jufzHUo+DtFGoIfVBornCkMdjBz1h0I/iEoGMBwv1q0NoZIMObDVKtKtSVfa+Pu0Pgu0qxWkNfag6sxIPkGNkC6kuFW9WPcxXnXTRA0Vqq+QdSdlca/Yy67L9K24Th4a8UOdOPP2WifTpusHY7ERjfQNIN0T8hxigJDAzJwq4Tr/SKO2lz58suT3cONIorBDPxW6bAOFr9FVjWFBf9K7TH0XfX1fXfKbWFtKGEopOivY=";
最终生成的业务处理结果为:
{
"AgwHead":{
"seq_no":"20211112110436201",
"resp_time":"20211112110459",
"msg_code":"siip_order_result_query",
"resp_code":"agw.success",
"resp_msg":"成功",
"sign":"BLGVAfDcFzXyW1i6N5mRXniPflFecpxiJ3jRs97bUtELIFA7BflDeSKdx6uh9QQPralLHbAr1oz/gtRvQrA8+zVC0qY2wqRaiHEcvWfQCnb2qR56WCyV9CcJPfrUu9UXpH4ZGoyuj/CAwZFeejN9eBad/Y07WfyEDhm1ZM25vgcRKqGJTYKLvv5Qh32m3p426+mmCd0AFL/qSO3caZ088wjqL9kBBBYSKARZCp6MHVptwGGQWCh7h09l0gcAiupaGmEVYEDKksKYBVnUnJTM4JQcfZih2RCu6Jbrg/GR5cY3qhKzxqyjMAcF9+ofp/pCJfo3GeijnShLfPj3+ca3atIkaJE="
},
"AgwBody":"bEDZGi9YZjuEkTUHYfz0Q3hWLjIu7qV1ZhjiVWTRiVrlQx+lTGxZNbtjvtHhn33sA9AXhJEDk3ANE4ogzIoSbp7diZ38KKo1dpQRxHi0w/WNnXd32h6rFoT/Hokyejat7LcHvIZYT1q3jhfjz4TPq0FZa1sZKAH9JWeY/mN934sjJefWv2r7awxoy8hf/9o6L42WgkW2j85j87Uk1KtSbT1+94NaORP1rX8Qp8IIFQ92XPfqXk8HaLJnsFY5/I6jufzHUo+DtFGoIfVBornCkMdjBz1h0I/iEoGMBwv1q0NoZIMObDVKtKtSVfa+Pu0Pgu0qxWkNfag6sxIPkGNkC6kuFW9WPcxXnXTRA0Vqq+QdSdlca/Yy67L9K24Th4a8UOdOPP2WifTpusHY7ERjfQNIN0T8hxigJDAzJwq4Tr/SKO2lz58suT3cONIorBDPxW6bAOFr9FVjWFBf9K7TH0XfX1fXfKbWFtKGEopOivY="
} ;
如本实施例中的业务系统为第二业务系统,则生成的业务处理结果的指令头为:
"code": 200,
"message": "业务处理成功",
"data": {
"orderNo": "2001000000120210702144038002",
"tradeStatus": 1,
"payedMoney": "100",
"discMoney": "0"
};
对指令头进行签名得到的数据域为:"sign": "87c3d474fe141d3f";
最终的业务处理结果为:
{
"code": 200,
"message": "业务处理成功",
"data": {
"orderNo": "2001000000120210702144038002",
"tradeStatus": 1,
"payedMoney": "100",
"discMoney": "0"
}
"sign": "87c3d474fe141d3f"
};
步骤L7:业务系统将业务处理结果返回给推送服务器,执行步骤A8;
步骤L8:推送服务器对接收到的业务处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取提前预置的对应企业信息,从企业信息中获取加密策略,根据加密策略对业务处理结果的解析结果进行验证,如验证成功则执行步骤L9,如验证失败则生成业务处理失败响应,使用设备密钥对业务处理失败响应进行加密得到业务处理响应密文,并将业务处理响应密文返回给终端设备,执行步骤L10;
可选的,在本实施例中,在步骤L8中还包括:从解析结果中获取业务处理状态并保存;
步骤L9:推送服务器根据业务处理结果的解析结果生成业务处理响应,使用设备密钥对业务处理响应进行加密,并将业务处理响应密文发送给终端设备,执行步骤L10;
步骤L10:终端设备使用设备密钥对接收到的业务处理响应密文进行解密,从解密成功的数据中提取第一处理结果并进行播报;
例如,第一处理结果中包括业务处理状态:业务处理成功或业务处理失败。
可选的,在本实施例中,推送服务器接收到业务处理请求密文或预处理请求密文后会生成一个外部业务编号,之后的推送服务器与终端设备之间的交互数据中和推送服务器与业务系统之间的交互数据中均带有这个外部业务编号,终端设备得到的第二处理结果和第一处理结果中均包含该外部业务编号。
可选的,在本实施例中,在步骤218或步骤L4之后如推送服务器在预设时间内未收到业务系统返回的业务处理结果,则本实施例的方法还包括:
步骤B1:推送服务器根据加密策略对业务序号和设备标识进行处理生成查询指令并发送给业务系统;
步骤B2:业务系统对接收到的查询指令进行解析,根据解析得到的设备标识获取对应加密策略,根据加密策略对接收到的查询指令进行验证,如验证成功则执行步骤B3,否则查询失败信息,根据加密策略对查询失败信息进行处理生成查询响应,并将查询响应返回给推送服务器,执行步骤B5;
步骤B3:业务系统根据解析得到的业务序号查找对应的业务处理状态,根据加密策略对业务处理状态和设备标识进行处理生成查询响应;
步骤B4:业务系统将查询响应返回给推送服务器,执行步骤B5;
步骤B5:推送服务器对接收到的查询响应进行解析,获取当前长连接的设备标识,根据设备标识获取提前预置的对应企业信息,从企业信息中获取加密策略,根据加密策略对查询响应的解析结果进行验证,如验证成功则执行步骤B6,如验证失败则生成查询失败信息,使用设备密钥对查询失败信息进行加密得到查询响应密文,并将查询响应密文发送给终端设备,执行步骤B7;
步骤B6:推送服务器从查询响应的解析结果中获取业务处理状态,使用设备密钥对业务处理状态进行加密生成查询响应密文,并将查询响应密文发送给终端设备,执行步骤B7;
步骤B7:终端设备使用设备密钥对接收到的业务处理响应密文进行解密,从解密成功的数据中提取查询结果并进行播报;
在本实施例中,查询结果包括业务处理状态、查询失败信息;其中,业务处理状态包括业务处理成功、业务处理失败。
可选的,在本实施例中,查询请求也可由终端设备发起,实现过程具体包括:
步骤C1:当终端设备接收到商户在菜单界面触发的查询信息时显示业务页面,当接收到用户选择的业务时,根据业务中的业务序号生成查询请求,使用设备密钥对查询请求进行加密并将查询请求密文发送给推送服务器;
步骤C2:推送服务器获取当前长连接的设备标识,根据设备标识获取对应的设备密钥,使用设备密钥对接收到的查询请求密文进行解密,如解密成功则从解密结果中获取业务序号,执行步骤C3,否则生成查询失败信息,使用设备密钥对查询失败信息进行加密生成查询响应密文,并将查询响应密文发送给终端设备,执行步骤C10;
步骤C3:推送服务根据业务序号判断是否保存有对应的业务处理状态,是则使用设备密钥对对应的业务处理状态进行加密生成查询响应密文,并将查询响应密文发送给终端设备,执行步骤C10,否则执行步骤C4;
步骤C4:推送服务器根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对业务序号和设备标识进行处理生成查询指令并发送给业务系统;
步骤C5:业务系统对接收到的查询指令进行解析,根据解析得到的设备标识获取对应的加密策略,根据加密策略对接收到的查询指令进行验证,如验证成功则执行步骤C6,否则生成查询失败信息,根据加密策略对查询失败信息进行处理生成查询响应,并将查询响应返回给推送服务器,执行步骤C8;
步骤C6:业务系统根据解析得到的业务序号查找对应的业务处理状态,根据加密策略对业务处理状态和设备标识进行处理生成查询响应;
步骤C7:业务系统将查询响应返回给推送服务器,执行步骤C8;
步骤C8:推送服务器对接收到的查询响应进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对查询响应的解析结果进行验证,如验证成功则执行步骤C9,如验证失败则生成查询失败信息,使用设备密钥对查询失败信息进行加密生成查询响应密文,并将查询响应密文发送给终端设备,执行步骤C10;
步骤C9:推送服务器从查询响应的解析结果中获取业务处理状态,使用与设备标识对应的设备密钥对业务处理状态进行加密生成查询响应密文,并将查询响应密文发送给终端设备,执行步骤C10;
步骤C10:终端设备使用设备密钥对接收到的查询响应密文进行解密,从解密成功的数据中提取查询结果并进行播报;
在本实施例中,查询结果包括业务处理状态、查询失败信息;其中,业务处理状态包括业务处理成功、业务处理失败。
可选的,在本实施例中,处理后的业务也可以被还原,相应的,本实施例的方法还包括:
步骤D1:当终端设备接收到商户在所述菜单界面触发的还原信息时显示业务页面,当接收到商户选择的业务时,根据业务中的业务序号生成还原请求,使用设备密钥对还原请求进行加密;
步骤D2:终端设备将还原请求密文发送给推送服务器;
步骤D3:推送服务器获取当前长连接的设备标识,根据设备标识获取对应的设备密钥,使用设备密钥对接收到的还原请求密文进行解密,如解密成功则根据设备标识获取对应的企业信息,从企业信息中获取加密策略,据加密策略对解密成功得到的业务序号和设备标识进行处理生成还原指令,执行步骤D4,如解密失败则生成还原失败信息,使用设备密钥对还原失败信息进行加密生成还原响应密文,并将还原响应密文返回给终端设备,执行步骤D10;
(一)如业务系统为第一业务系统,则在该步骤中的加密策略包括:加密算法是:sm4,签名算法是sm2,使用的加密密钥是工作密钥;工作密钥是推送服务器与业务系统协商保存下来的;
例如,工作密钥为:71b31bc0ae9264580d4846fe7f79d2fc0227dc23debd3d01c45fdecd0177ed94531346e54a9cb52d1d349f909e1007feba9e2e8961453329d6498850b2835a18947284650dfb8885984af57ae44115721bcd5e9bf0f04e3bbe0f926b4ae0d358f8b7f7791102869664a9da088c7c32230cd90399a35ae4a53f77e7849e9f983e;
设备标识为:20010000001;
解密成功得到的还原请求为:
{
"bank_order_no":"20211112110436203"
}
根据设备标识和加密策略中的加密算法、签名算法生成第五明文数据;
例如,第五明文数据为:
{
"did":"20010000001",
"encrypt_type":"sm4",
"mid":"jfty",
"msg_code":"siip_order_refund",
"pid":"QE60",
"req_time":"20211112110660",
"seq_no":"20211112110436203",
"sign_type":"sm2",
"version":"4.0.0"
};
根据加密策略中的sm2签名算法对第五明文数据进行签名得到第五签名值;
例如,第五签名值为:
"signature":" 3045022100a3b3225fe43e2a808d243b47f254777c354461121a6c5049914df780a539bc4302207506cfe5846223aa31935a95512e3613834932db92630e0ea7e692ff5447e8e1";
根据第五明文数据和第五签名值生成还原指令的指令头;
例如,还原指令的指令头为:
"AgwHead":{
"did":"20010000001",
"encrypt_type":"sm4",
"mid":"jfty",
"msg_code":"siip_order_refund",
"pid":"QE60",
"req_time":"20211112110660",
"seq_no":"20211112110436203",
"sign_type":"sm2",
"version":"4.0.0",
"signature":" 3045022100a3b3225fe43e2a808d243b47f254777c354461121a6c5049914df780a539bc4302207506cfe5846223aa31935a95512e3613834932db92630e0ea7e692ff5447e8e1"
};
根据解密得到的业务序号和设备标识生成第六明文数据;
例如,第六明文数据为:
"AgwBody":{
"main_order_no":"DT20210702144038001",
"pay_no":"SIIP3613834932db92630",
"ext_refund_no":"2a808d243b47f254777c35446",
};
根据加密策略中的sm4加密算法使用工作密钥对第六明文数据进行加密得到第三加密结果;
例如,第三加密结果为:
"AgwBody": "0ee3b6557682e19c0694c4b2c997099e0ab2986f0e5e459eb1358ba23aa34c62abb227799b67f9bc872eabf567d37cef8b19264f9d238ab88b6bede03502779c571cf4417aee482b9ff85f41ad69c2f62fc940fefc805e85524735b4a205ed96639075378c21617479bce2e39f141a083c4528a4cf321c7c43bc0a725ac07a1194ef58121da96afde6281f0d6ba4e5a2c539a816e826a354e3fc352cec3aadb134363041e9a90a1adb5ae3debc4fdaed";
推送服务器根据第三加密结果设置数据域,根据还原指令的指令头和数据域生成还原指令;
例如,生成的还原指令为:
{
"AgwHead":{
"did":"20010000001",
"encrypt_type":"sm4",
"mid":"jfty",
"msg_code":"siip_order_refund",
"pid":"QE60",
"req_time":"20211112110660",
"seq_no":"20211112110436203",
"sign_type":"sm2",
"version":"4.0.0",
"signature":" 3045022100a3b3225fe43e2a808d243b47f254777c354461121a6c5049914df780a539bc4302207506cfe5846223aa31935a95512e3613834932db92630e0ea7e692ff5447e8e1"
},
"AgwBody": "0ee3b6557682e19c0694c4b2c997099e0ab2986f0e5e459eb1358ba23aa34c62abb227799b67f9bc872eabf567d37cef8b19264f9d238ab88b6bede03502779c571cf4417aee482b9ff85f41ad69c2f62fc940fefc805e85524735b4a205ed96639075378c21617479bce2e39f141a083c4528a4cf321c7c43bc0a725ac07a1194ef58121da96afde6281f0d6ba4e5a2c539a816e826a354e3fc352cec3aadb134363041e9a90a1adb5ae3debc4fdaed"
};
(二)如本实施例中的业务系统为第二业务系统,该步骤中从企业信息中获取加密策略包括:摘要算法MD5,处理过程使用的密钥是业务系统密钥;
例如,业务系统密钥为: jAl2o4OSsNakzUfgae_fB5lhgPG44HJA;
设备标识为:6201F65A99900001;
解密成功得到的还原请求为:
{
"bank_order_no":"11111112"
}
根据设备标识和还原请求中的业务序号生成还原指令的指令头;
例如,生成的还原指令的指令头为:
{
"accessId":"c1d76445ea384e22899a2b1409f44f8c",
"deviceId":"6201F65A99900001",
"orderNo":"11111112",
"timestamp":"20220215151814",
"longitude":"116.351768",
"latitude":"40.020809"
}
推送服务器根据MD5摘要算法使用业务系统密钥对还原指令的指令头进行签名得到第六签名值,根据第六签名值设置还原指令的数据域,根据还原指令的指令头和数据域生成还原指令;
例如,第六签名值为:
"sign":"708D6B75EDC252535360E0D69E23BD42";
生成的还原指令为:
{
"accessId":"c1d76445ea384e22899a2b1409f44f8c",
"deviceId":"6201F65A99900001",
"orderNo":"11111112",
"timestamp":"20220215151814",
"longitude":"116.351768",
"latitude":"40.020809",
"sign":"708D6B75EDC252535360E0D69E23BD42"
};
步骤D4:推送服务器将还原指令发送给业务系统;
步骤D5:业务系统对接收到的还原指令进行解析,根据还原指令的解析结果中的设备标识获取对应加密策略,根据加密策略对接收到的还原指令进行验证,如验证成功则执行步骤D6,如验证失败则生成还原失败信息,并加密策略对还原失败信息和设备标识进行处理得到还原处理结果,并将还原处理结果返回给推送服务器,执行步骤D8;
在本实施例中,根据加密策略对接收到的还原指令进行验证的实现过程与步骤216相同,在此不再赘述;
步骤D6:业务系统根据还原指令的解析结果中的业务序号进行还原处理得到还原结果,使用加密策略对还原结果和和设备标识进行处理生成还原处理结果;
在本实施例中,还原结果包含还原状态(例如为还原成功或还原失败)、还原消耗量、还原业务的处理渠道;
可选的,该步骤中的根据业务序号进行还原处理得到还原结果,包括:根据业务序号获取对应业务的业务消耗量,将商户(终端设备使用者)账户中扣除该业务的业务消耗量,根据扣除的业务消耗量更新用户账户;
步骤D7:业务系统将还原处理结果发送给推送服务器;
例如,本实施例中个业务系统为第一业务系统,则还原处理结果的指令头中的待签名数据为:
"AgwHead":{
"seq_no":"20211112110436201",
"resp_time":"20211112110459",
"msg_code":"siip_order_refund",
"resp_code":"agw.success",
"resp_msg":"成功"
};
根据指令头中的待签名数据生成的签名数据为:"sign":"BFZgZqSzv/Ka6xBKsC8MvCHk8UF6PLHTr1DJ8JQBAm9AvtsTh31b3sZP5B26znP4XZUcZCjKNCxo5Z45zrF8bc+1YwWutOXLcpiE+Um0GVwOZ4YcsAfPb/dzz55LN3xWpMUm8iBudyVsmJ88uGE0BiIViBPEe/gcj/U7P/ToqgSL3yaBBKaJYu7W0bxKa6S8TE1JgtWVcJQOdEFxtT/cYYZeshhS/HEF3+4qNmKd4O/AJVoe3PlDFO2v0cn2hUL+zaSnzYhkhpwn1raVv0lOpbzBeViGNk+yaeSoRZEpuQcqaFqZqF15one+MiPxOmQ9r5PjHD/aiWd5rdsexKU=";
还原处理结果的指令头为:
"AgwHead":{
"seq_no":"20211112110436201",
"resp_time":"20211112110459",
"msg_code":"siip_order_refund",
"resp_code":"agw.success",
"resp_msg":"成功"
},
"sign":"BFZgZqSzv/Ka6xBKsC8MvCHk8UF6PLHTr1DJ8JQBAm9AvtsTh31b3sZP5B26znP4XZUcZCjKNCxo5Z45zrF8bc+1YwWutOXLcpiE+Um0GVwOZ4YcsAfPb/dzz55LN3xWpMUm8iBudyVsmJ88uGE0BiIViBPEe/gcj/U7P/ToqgSL3yaBBKaJYu7W0bxKa6S8TE1JgtWVcJQOdEFxtT/cYYZeshhS/HEF3+4qNmKd4O/AJVoe3PlDFO2v0cn2hUL+zaSnzYhkhpwn1raVv0lOpbzBeViGNk+yaeSoRZEpuQcqaFqZqF15one+MiPxOmQ9r5PjHD/aiWd5rdsexKU="
};
指令中数据域的明文数据为:
"AgwBody":{
"result_code":"00000",
"result_msg":"成功",
"refund_order_no":"11111112",
"refund_status ":"S",
"msg":"还原成功",
"pay_class":"第一处理渠道",
"orig_order_amt":"100",
"mer_refund_amt":"100",
"sys_discount_refund_amt":"0",
"channel_discount_user_refund_amt":"0",
"channel_user_real_refund_amt":"0",
"jf_refund_amt":"0"
};
还原处理结果的指令中数据域是根据数据域明文进行加密生成,具体为:"AgwBody":"EOHDR2A3INJzvOzKGuGf6oN1Ip6mkLABz2/6SeAfPd5wS6IAIrbcM8/OM2aWapTFMwcaz8sHiAwulssoiv51dQ6OJ6FWJnDtAxNusgq8MyuwvNzDkJzvTK3ix6nYhcE8HG4oA6iqVrkIvdKkbSWq84E/ClZJnC+W0N7mfHSNfcILfKY0M/iAv6Cyyc+xmR0JbzMCbgcMzJhe6JIHaaJbr2anmKUmqJA3GA8RWrHCuzDYyj0P1pulDImQUUNOmXkKzCTWerd6q9Fei8ZfofI6bCXukzbmWwzdcIUJdKDeALESPfQ/H36wcz9kDTkXrtEbTDmTETg7mk+07yHyoF2LLlIZWz/Q41Y1n87CA3GTvKY7xjEWnSZMKSE1asEyPHtF7AQHL9RVPerIj9mhqQsE5+IiArCJrmGQ2lnf1CNlFfn1deMHjYmeEGUOOhvO9lmlFKsPBu3F2q+F7r+Q3Aw+8A==";
最终生成的还原处理结果为:
{
"AgwHead":{
"seq_no":"20211112110436201",
"resp_time":"20211112110459",
"msg_code":"siip_order_refund",
"resp_code":"agw.success",
"resp_msg":"成功"
},
"sign":"BFZgZqSzv/Ka6xBKsC8MvCHk8UF6PLHTr1DJ8JQBAm9AvtsTh31b3sZP5B26znP4XZUcZCjKNCxo5Z45zrF8bc+1YwWutOXLcpiE+Um0GVwOZ4YcsAfPb/dzz55LN3xWpMUm8iBudyVsmJ88uGE0BiIViBPEe/gcj/U7P/ToqgSL3yaBBKaJYu7W0bxKa6S8TE1JgtWVcJQOdEFxtT/cYYZeshhS/HEF3+4qNmKd4O/AJVoe3PlDFO2v0cn2hUL+zaSnzYhkhpwn1raVv0lOpbzBeViGNk+yaeSoRZEpuQcqaFqZqF15one+MiPxOmQ9r5PjHD/aiWd5rdsexKU="
},
"AgwBody":"EOHDR2A3INJzvOzKGuGf6oN1Ip6mkLABz2/6SeAfPd5wS6IAIrbcM8/OM2aWapTFMwcaz8sHiAwulssoiv51dQ6OJ6FWJnDtAxNusgq8MyuwvNzDkJzvTK3ix6nYhcE8HG4oA6iqVrkIvdKkbSWq84E/ClZJnC+W0N7mfHSNfcILfKY0M/iAv6Cyyc+xmR0JbzMCbgcMzJhe6JIHaaJbr2anmKUmqJA3GA8RWrHCuzDYyj0P1pulDImQUUNOmXkKzCTWerd6q9Fei8ZfofI6bCXukzbmWwzdcIUJdKDeALESPfQ/H36wcz9kDTkXrtEbTDmTETg7mk+07yHyoF2LLlIZWz/Q41Y1n87CA3GTvKY7xjEWnSZMKSE1asEyPHtF7AQHL9RVPerIj9mhqQsE5+IiArCJrmGQ2lnf1CNlFfn1deMHjYmeEGUOOhvO9lmlFKsPBu3F2q+F7r+Q3Aw+8A=="
} ;
如本实施例中的业务系统为第二业务系统,则还原处理结果的指令头为:
"code": 200,
"message": "还原成功",
"data": {
"orderNo": "11111112",
"tradeStatus": 3,
"money": "100",
"discMoney": "0"
};
对指令头进行签名得到的数据域为:"sign": "d35a3e8ca53b3934";
最终的还原处理结果的指令为:
{
"code": 200,
"message": "还原成功",
"data": {
"orderNo": "11111112",
"tradeStatus": 3,
"payedMoney": "100",
"discMoney": "0"
}
"sign": "d35a3e8ca53b3934"
};
步骤D8:推送服务器对接收到的还原处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对还原处理结果的解析结果进行验证,如验证成功则执行步骤D9,如验证失败则生成还原失败信息,使用与设备标识对应的设备密钥对还原失败信息进行加密得到还原响应密文,并将还原响应密文返回给终端设备,执行步骤D10;
步骤D9:推送服务器从还原处理结果的解析结果中获取还原结果,使用与设备标识对应的设备密钥对还原结果进行加密得到还原响应密文,将还原响应密文发送给终端设备,执行步骤D10;
例如,本实施例中该步骤的还原响应密文为:QREsjSg8Q8Z86a8zPwEX7UIpYFEogI7h6FU+tjk3KEb5+SpNub2Zyy8LmOi+qSHjZxEh1td+NmRCQF9HXZ0FwoAjpKxVgKqxdIKKmhTKPbfYSlc3swSSRSpdDoXvW8ogKyK6lOqMZuvaV2+KpZr09we4nE2WjytZ/Z531bcAmbKR62x5P3zDkQX+/OsJTP8s4ZdDI2rlrskQDSBOufuQxnjoYOay/Uy3JcvROeam68U=;
步骤D10:终端设备使用设备密钥对接收到的还原响应密文进行解密,从解密成功的数据中提取还原结果并进行播报;
在本实施例中,还原结果中包括还原状态、还原金额和还原业务的处理渠道;
例如,如从解密结果中提取的还原结果为:业务处理成功,则播报“第一处理渠道成功还原xxx量”;如从解密结果中提取的还原结果为:业务处理失败或还原失败信息,则播报“业务还原失败”;
例如,本实施例中解密成功的数据为:
{
"bank_order_no":"11111112",
"pay_channel":"第一处理渠道",
"status":3,
"msg":"第一处理渠道还原100量",
"amount":"100",
"bank_order_time":"20211221163600"
}。
可选的,本实施例的终端设备的业务处理模式包括扫模式和被扫模式,则本实施例方法还包括:当终端设备接收到商户在菜单界面上选择的业务处理模式时判断业务处理模式的类型,如为主扫模式则设置业务处理使用主扫,如为被扫模式则设置业务处理使用被扫,打开摄像头;
所述步骤A1之前包括:当所述终端设备接收到的商户输入的业务信息时判断业务处理模式,如为主扫模式则执行步骤214,如为被扫模式则执行步骤A1。
实施例三
本发明实施例三提供一种业务处理的实现系统,包括:终端设备、推送服务器和业务系统;
终端设备用于登录推送服务器并从推送服务器中获取企业信息,根据企业信息显示相应的业务处理页面,判断自身设备是否已激活,如未激活则进行激活操作;
终端设备还用于在激活之后当接收到的商户输入的业务信息时生成业务序号;当通过扫描用户设备获取到待处理信息时,根据待处理信息和业务序号生成业务处理请求,使用设备密钥对业务处理请求进行加密,并将业务处理请求密文发送给推送服务器;
推送服务器用于在接收到业务处理请求密文后获取当前长连接的设备标识,根据设备标识获取对应的设备密钥,使用设备密钥对接收到的业务处理请求密文进行解密,如解密成功则根据设备标识获取对应的预置的企业信息,从企业信息中获取加密策略,据加密策略对解密成功得到的待处理信息和业务序号、设备标识进行处理生成业务处理指令,将业务处理指令发送给业务系统;
业务系统用于对接收到的业务处理指令进行解析,根据解析得到的设备标识获取对应的加密策略,根据加密策略对业务处理指令进行验证,如验证成功则从业务处理指令的解析结果中获取待处理信息,对待处理信息进行处理得到第一处理结果,使用加密策略对第一处理结果和设备标识进行处理生成业务处理结果,将业务处理结果返回给推送服务器;
推送服务器还用于对业务处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取对应的预置的企业信息,从企业信息中获取加密策略,根据加密策略对业务处理结果的解析结果进行验证,如验证成功则根据业务处理结果的解析结果生成业务处理响应,使用设备密钥对业务处理响应进行加密,并将业务处理响应密文发送给终端设备;
终端设备还用于使用所示设备密钥对接收到的业务处理响应密文进行解密,从解密成功的数据中提取第一处理结果并进行播报;
终端设备还用于当接收到商户的第一触发信息时根据企业信息显示对应的菜单界面。
可选的,在本实施例中,终端设备还用于当接收到的商户输入的业务信息时根据业务信息生成预处理请求,使用设备密钥对预处理请求进行加密并将预处理请求密文发送给推送服务器;
推送服务器还用于获取当前长连接的设备标识,根据设备标识从数据库中获取对应的设备密钥,使用获取到的设备密钥对接收到的预处理请求密文进行解密,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对解密成功得到的业务信息、设备标识进行处理生成预处理指令,并将预处理指令发送给业务系统;
业务系统还用于对预处理指令进行验证,如验证成功则根据预处理指令中的业务信息生成二维码,根据与预处理指令中的设备标识对应的加密策略对二维码进行处理得到预处理结果,并将预处理结果返回给推送服务器,如验证失败则报错;
推送服务器还用于对接收到的预处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据预处理结果的解析结果和加密策略对预处理结果进行验证,如验证成功则使用与设备标识对应的设备密钥对预处理结果的解析结果进行加密生成预处理响应密文,将预处理响应密文返回给终端设备,否则报错;
终端设备还用于使用设备密钥对接收到的预处理响应密文进行解密,如解密成功则根据解密结果判断预处理是否成功,是则从解密结果中获取二维码并显示;
其中,终端设备显示二维码后,用户可使用用户设备扫描二维码,用户设备根据扫描到的二维码生成业务数据,并将业务数据发送给业务系统;
业务系统还用于当接收到用户设备发送的业务数据时,对业务数据进行数据处理得到第二处理结果,根据加密策略对第二处理结果和生成的业务序号进行处理生成业务处理结果,并将业务处理结果发送给推送服务器;
推送服务器还用于对业务处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据业务处理结果的解析结果和加密策略对业务处理结果进行验证,如验证成功则根据业务处理结果的解析结果生成业务处理响应,使用与设备标识对应的设备密钥对业务处理响应进行加密,并将业务处理响应密文发送给终端设备,如验证失败则报错;
终端设备还用于使用设备密钥对接收到的业务处理响应密文进行解密,从解密成功的结果中提取第二处理结果并播报。
可选的,在本实施例中,终端设备还用于当接收到商户在菜单界面上选择的业务处理模式时判断业务处理模式的类型,如为主扫模式则设置业务处理使用主扫,如为被扫模式则设置业务处理使用被扫,打开摄像头;
终端设备还用于当接收到的商户输入的业务信息时判断业务处理模式,如为主扫模式则当接收到的商户输入的业务信息时根据业务信息生成预处理请求,使用设备密钥对预处理请求进行加密并将预处理请求密文发送给推送服务器,如为被扫模式则当接收到的商户输入的业务信息时生成业务序号;当通过扫描用户设备获取到待处理信息时,根据待处理信息和业务序号生成业务处理请求,使用设备密钥对业务处理请求进行加密,并将业务处理请求密文发送给推送服务器。
可选的,本实施例中的推送服务器还用于在预设时间内未收到业务系统返回的业务处理结果时,根据加密策略对业务序号和设备标识进行处理生成查询指令并发送给业务系统;
业务系统还用于对接收到的查询指令进行解析,根据解析得到的设备标识获取对应的加密策略,根据加密策略对接收到的查询指令进行验证,如验证成功则根据解析得到的业务序号查找对应的业务处理状态,根据加密策略对业务处理状态和设备标识进行处理生成查询响应,将查询响应返回给推送服务器,否则报错;
推送服务器还用于对接收到的查询响应进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对查询响应的解析结果进行验证,如验证成功则从查询响应的解析结果中获取业务处理状态,使用设备密钥对业务处理状态进行加密生成查询响应密文,并将查询响应密文发送给终端设备,如验证失败则报错;
终端设备还用于使用设备密钥对接收到的查询响应密文进行解密,从解密成功的数据中提取业务处理状态并进行播报。
可选的,在本实施例中,终端设备还用于当接收到商户在菜单界面触发的查询信息时显示业务页面,当接收到商户选择的业务时,根据业务中的业务序号生成查询请求,使用保存的设备密钥对查询请求进行加密并将查询请求密文发送给推送服务器;
推送服务器还用于获取当前长连接的设备标识,根据设备标识获取对应的设备密钥,使用设备密钥对接收到的查询请求密文进行解密,如解密失败则报错,如解密成功则从解密结果中获取业务序号,根据业务序号判断是否保存有对应的业务处理状态,是则使用设备密钥对业务处理状态进行加密生成查询响应密文,并将查询响应密文发送给终端设备,否则根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对业务序号和设备标识进行处理生成查询指令并发送给业务系统;
业务系统还用于对接收到的查询指令进行解析,根据解析得到的设备标识获取对应的加密策略,根据加密策略对接收到的查询指令进行验证,如验证失败则报错,如验证成功则根据解析得到的业务序号查找对应的业务处理状态,根据加密策略对业务处理状态和设备标识进行处理生成查询响应,将查询响应返回给推送服务器;
推送服务器还用于对接收到的查询响应进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对查询响应的解析结果进行验证,如验证失败则报错,如验证成功则从查询响应的解析结果中获取业务处理状态,使用与设备标识对应的设备密钥对业务处理状态进行加密生成查询响应密文,并将查询响应密文发送给终端设备;
终端设备还用于使用设备密钥对接收到的查询响应密文进行解密,从解密成功的数据中提取业务处理状态并进行播报。
可选的,在本实施例中,终端设备显示的菜单界面还包括还原按钮,相应的,终端设备还用于当接收到商户在菜单界面触发的还原信息时显示业务页面,当接收到商户选择的业务时,根据业务中的业务序号生成还原请求,使用设备密钥对还原请求进行加密,将还原请求密文发送给推送服务器;
推送服务器还用于获取当前长连接的设备标识,根据设备标识获取对应的设备密钥,使用设备密钥对接收到的还原请求密文进行解密,如解密成功则根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对解密成功得到的业务序号和设备标识进行处理生成还原指令,将还原指令发送给业务系统,否则报错;
业务系统还用于对接收到的还原指令进行解析,根据还原指令的解析结果中的设备标识获取对应加密策略,根据加密策略对还原指令进行验证,如验证成功则根据还原指令的解析结果中的业务序号进行还原处理得到还原结果,使用加密策略对还原结果和设备标识进行处理生成还原处理结果,将还原处理结果发送给推送服务器,如验证失败则报错;
推送服务器还用于对接收到的还原处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对还原处理结果的解析结果进行验证,如验证成功则从还原处理结果的解析结果中获取还原结果,使用与设备标识对应的设备密钥对还原结果进行加密得到还原响应密文,将还原响应密文发送给终端设备,如验证失败则报错;
终端设备还用于使用设备密钥对接收到的还原响应密文进行解密,从解密成功的数据中提取还原结果并进行播报。
具体的,在本实施例中,终端设备登录用于推送服务器并从推送服务器中获取企业信息,包括:
终端设备具体用于根据设备标识和登录信息组装登录请求,并将登录请求发送给推送服务器;
推送服务器还用于对接收到的登录请求进行解析,根据解析得到的设备标识获取对应的设备密钥,使用设备密钥对登录请求进行验证,如验证合法则生成包含登录成功的登录响应并返回给终端设备,与终端设备建立长连接,如验证不合法则生成包含登录失败的登录响应并返回给终端设备;
推送服务器还用于根据设备标识获取设备所属的企业信息,并根据企业信息和终端设备的设备激活状态组装设备所属企业通知报文,使用设备密钥对企业通知报文进行加密得到企业通知报文密文,将设备所属企业通知报文密文发送给终端设备;
终端设备具体还用于使用设备密钥对接收到的设备所属企业通知报文密文进行验证,如验证通过则从设备所属企业通知报文密文中获取设备所属的企业信息并保存,如验证未通过则报错。
可选的,在本实施例中,终端设备还用于在开机后接收烧录的三元组信息并保存;其中,三元组信息包括:产品密钥、设备标识、设备密钥。
可选的,在本实施例中,推送服务器还用于接收导入的终端设备的三元组信息和设备所属的企业信息,将三元组信息和企业信息对应保存到数据库中;
业务系统还用于接收业务人员输入的设备标识和商户信息并对应保存。
可选的,在本实施例中,终端设备还用于生成登录信息;
其中,登录信息包括登录名和密码,终端设备还用于生成登录信息具体包括:终端设备还用于将交互协议版本号、产品密钥、安全模式、加密方式和时间戳按照顺序使用预设符号进拼接得到登录名,使用设备密钥对登录名进行签名,将签名结果转换为十六进制字符串得到密码;
例如,预设符号为&。
可选的,在本实施例中,终端设备还用于在预设时间内未收到推送服务器返回的登录响应时会间隔预设时长重新发送登录请求给推送服务器,直到收到推送服务器的登录响应。
可选的,在本实施例中,终端设备还用于在接收到包含登录成功的登录响应后获取基站和WIFI信息,并根据基站和WIFI信息组成地理位置信息,使用设备密钥对地理位置信息进行加密并将地理位置信息密文发送给推送服务器;
相应的,推送服务器还用于获取当前长连接的设备标识,根据设备标识从数据库中获取对应的设备密钥,使用设备密钥对接收到的地理位置信息密文进行解密,并保存解密成功得到的地理位置信息;
终端设备还用于在接收到包含登录成功的登录响应后获取插入的SIM卡信息,根据SIM卡信息生成设备基础信息,使用设备密钥对设备基础信息进行加密并将设备基础信息密文发送给推送服务器;
相应的,推送服务器还用于获取当前长连接的设备标识,根据设备标识从数据库中获取对应的设备密钥,使用设备密钥对接收到的设备基础信息密文进行解密,保存解密成功得到的设备基础信息。
可选的,在本实施例中,终端设备还用于在所述设备所属企业通知报文密文验证成功之后从设备所属企业通知报文密文中获取设备激活状态并显示;
终端设备用于判断自身设备是否已激活,具体为:终端设备还用于根据设备激活状态判断自身设备是否已激活,如设备激活状态为已激活则终端设备已激活,如设备激活状态为未激活则终端设备未激活。
在本实施例中,终端设备还用于根据商户输入的激活码生成设备激活请求,使用设备密钥对设备激活请求进行加密并将设备激活请求密文发送给推送服务器;
推送服务器还用于获取当前长连接的设备标识,根据设备标识从数据库中获取对应的设备密钥,使用设备密钥对接收到的设备激活请求密文进行解密,如解密成功则根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对设备标识和设备激活请求密文的解密结果进行处理生成设备激活指令并将设备激活指令发送给业务系统,如解密失败则激活失败,报错;
业务系统还用于对接收到的设备激活指令进行解析,根据解析得到的设备标识获取对应加密策略,根据加密策略对设备激活指令进行验证,如验证成功则生成设备激活成功信息,根据加密策略对设备激活成功信息进行处理,并将激活处理结果返回给推送服务器,否则激活失败,报错;
推送服务器还用于对接收到激活处理结果进行解析,获取当前长连接的设备标识,根据设备标识获取对应的企业信息,从企业信息中获取加密策略,根据加密策略对激活处理结果的解析结果进行验证,如验证成功则从激活处理结果的解析结果中获取激活结果,根据激活结果组装激活响应,使用设备密钥对激活响应进行加密并将激活响应密文返回给终端设备,如验证失败则激活失败,报错;
终端设备还用于使用设备密钥对接收到的激活响应密文进行解密,根据解密结果判断终端设备是否激活成功,如激活失败则报错。
可选的,本申请的实施例还提供了一种电子设备,电子设备包括至少一个处理器、存储器及存储在该存储器上并可被至少一个处理器执行的指令,至少一个处理器执行该指令以实现上述实施例中的业务处理的实现方法。该电子设备是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定;该芯片与存储器耦合,用于执行存储器中存储的计算机程序,以执行上述实施例中公开的业务处理的实现方法。该电子设备可以为上述终端设备、推送服务器和业务系统中的任意一个。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机程序。在电子设备上加载和执行计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机程序可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个基站、终端设备、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个基站、终端设备、服务器或数据中心进行传输。所述计算机可读存储介质可以是终端设备能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、 或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (19)
1.一种业务处理的实现方法,其特征在于,包括:
步骤A0:终端设备登录推送服务器并从所述推送服务器中获取企业信息,根据企业信息显示相应的业务处理画面,判断自身设备是否已激活,是则执行步骤A1,否则进行激活操作,激活成功后执行步骤A1;
步骤A1:所述终端设备接收商户输入的业务信息;
步骤A2:当所述终端设备通过扫描用户设备获取到待处理信息时,根据所述待处理信息和业务序号生成业务处理请求,使用设备密钥对所述业务处理请求进行加密,并将业务处理请求密文发送给所述推送服务器;
步骤A3:所述推送服务器获取当前长连接的设备标识,根据所述设备标识获取对应的设备密钥,使用所述设备密钥对接收到的所述业务处理请求密文进行解密,如解密成功则根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对解密成功得到的待处理信息和所述设备标识进行处理生成业务处理指令;
步骤A4:所述推送服务器将所述业务处理指令发送给业务系统;
步骤A5:所述业务系统对接收到的所述业务处理指令进行解析,根据解析得到的设备标识获取对应的加密策略,根据所述加密策略对所述业务处理指令进行验证,如验证成功则执行步骤A6,否则报错;
步骤A6:所述业务系统从所述业务处理指令的解析结果中获取待处理信息,对所述待处理信息进行处理得到第一处理结果,使用所述加密策略对所述第一处理结果、生成的业务序号和所述设备标识进行处理生成业务处理结果;
步骤A7:所述业务系统将所述业务处理结果返回给所述推送服务器,执行步骤A8;
步骤A8:所述推送服务器对所述业务处理结果进行解析,获取当前长连接的设备标识,根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对所述业务处理结果的解析结果进行验证,如验证成功则执行步骤A9;
步骤A9:所述推送服务器根据所述业务处理结果的解析结果生成业务处理响应,使用所述设备密钥对业务处理响应进行加密,并将业务处理响应密文发送给所述终端设备;
步骤A10:所述终端设备使用所述设备密钥对接收到的业务处理响应密文进行解密,从解密成功的数据中提取第一处理结果并进行播报;
所述终端设备激活之后还包括:当所述终端设备接收到商户的第一触发信息时根据所述企业信息显示对应的菜单界面。
2.如权利要求1所述的方法,其特征在于,所述步骤A1-步骤A10替换为:
步骤S1:当所述终端设备接收到的商户输入的业务信息时根据所述业务信息生成预处理请求,使用所述设备密钥对所述预处理请求进行加密并将预处理请求密文发送给所述推送服务器;
步骤S2:所述推送服务器获取当前长连接的设备标识,根据所述设备标识从数据库中获取对应的设备密钥,使用获取到的设备密钥对接收到的所述预处理请求密文进行解密,根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对解密成功得到的业务信息、所述设备标识进行处理生成预处理指令,并将所述预处理指令发送给业务系统;
步骤S3:所述业务系统对所述预处理指令进行验证,如验证成功则执行步骤S4,如验证失败则报错;
步骤S4:所述业务系统根据所述预处理指令中的业务信息生成二维码,根据与所述预处理指令中的设备标识对应的加密策略对所述二维码进行处理得到预处理结果,并将所述预处理结果返回给所述推送服务器;
步骤S5:所述推送服务器对接收到的所述预处理结果进行解析,获取当前长连接的设备标识,根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述预处理结果的解析结果和所述加密策略对所述预处理结果进行验证,如验证成功则执行步骤S6,否则报错;
步骤S6:所述推送服务器使用与所述设备标识对应的设备密钥对所述预处理结果的解析结果进行加密生成预处理响应密文,将所述预处理响应密文返回给所述终端设备;
步骤S7:所述终端设备使用所述设备密钥对接收到的所述预处理响应密文进行解密,如解密成功则根据解密结果判断预处理是否成功,是则从解密结果中获取二维码并显示;
步骤S8:当所述业务系统接收到用户设备发送的业务数据时,对所述业务数据进行数据处理得到第二处理结果,根据所述加密策略对所述第二处理结果和生成的业务序号进行处理生成业务处理结果,并将所述业务处理结果发送给所述推送服务器;
步骤S9:所述推送服务器对所述业务处理结果进行解析,获取当前长连接的设备标识,根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述业务处理结果的解析结果和所述加密策略对所述业务处理结果进行验证,如验证成功则执行步骤S10,如验证失败则报错;
步骤S10:所述推送服务器根据所述业务处理结果的解析结果生成业务处理响应,使用与所述设备标识对应的设备密钥对所述业务处理响应进行加密,并将业务处理响应密文发送给所述终端设备;
步骤S11:所述终端设备使用所述设备密钥对接收到的业务处理响应密文进行解密,从解密成功的结果中提取第二处理结果并播报。
3.如权利要求1所述的方法,其特征在于,还包括:当所述终端设备接收到商户在所述菜单界面上选择的业务处理模式时判断业务处理模式的类型,如为主扫模式则设置业务处理使用主扫,如为被扫模式则设置业务处理使用被扫,打开摄像头;
所述步骤A1中的生成业务序号之前包括:当所述终端设备接收到的商户输入的业务信息时判断业务处理模式,如为主扫模式则执行步骤Y1,如为被扫模式则生成业务序号,执行步骤A2;
步骤Y1:当所述终端设备接收到的商户输入的业务信息时根据所述业务信息生成预处理请求,使用所述设备密钥对所述预处理请求进行加密并将预处理请求密文发送给所述推送服务器;
步骤Y2:所述推送服务器获取当前长连接的设备标识,根据所述设备标识从数据库中获取对应的设备密钥,使用获取到的设备密钥对接收到的所述预处理请求密文进行解密,根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对解密成功得到的业务信息、所述设备标识进行处理生成预处理指令并将所述预处理指令发送给业务系统;
步骤Y3:所述业务系统对所述预处理指令进行验证,如验证成功则执行步骤Y4,如验证失败则报错;
步骤Y4:所述业务系统根据所述预处理指令中的业务信息生成二维码,根据与所述预处理指令中的设备标识对应的加密策略对所述二维码进行处理得到预处理结果,并所述预处理结果返回给所述推送服务器;
步骤Y5:所述推送服务器对接收到的所述预处理结果进行解析,获取当前长连接的设备标识,根据所述设备标识获取提前预置的对应企业信息,从企业信息中获取加密策略,并根据所述预处理结果的解析结果和所述加密策略对所述预处理结果进行验证,如验证成功则执行步骤Y6;
步骤Y6:所述推送服务器使用与所述设备标识对应的设备密钥对所述预处理结果的解析结果进行加密生成预处理响应密文,并将预处理响应密文返回给所述终端设备;
步骤Y7:所述终端设备使用所述设备密钥对接收到的所述预处理响应密文进行解密,如解密成功则根据解密结果判断预处理是否成功,是则从解密结果中获取二维码并显示;
步骤Y8:当所述业务系统接收到用户设备的业务数据时,对所述业务数据进行数据处理得到第二处理结果,根据所述加密策略对所述第二处理结果和生成的业务序号进行处理生成业务处理结果,并将所述业务处理结果发送给所述推送服务器;
步骤Y9:所述推送服务器对所述业务处理结果进行解析,获取当前长连接的设备标识,根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述业务处理结果的解析结果和所述加密策略对所述业务处理结果进行验证,如验证成功则执行步骤Y10,如验证失败则报错;
步骤Y10:所述推送服务器根据所述业务处理结果的解析结果生成业务处理响应,使用与所述设备标识对应的设备密钥对所述业务处理响应进行加密并将业务处理响应密文发送给所述终端设备;
步骤Y11:所述终端设备使用所述设备密钥对接收到的业务处理响应密文进行解密,从解密成功的结果中提取第二处理结果并播报。
4.如权利要求1-3任意一项所述的方法,其特征在于,如所述推送服务器在预设时间内未收到所述业务系统返回的业务处理结果时,所述方法还包括:
步骤B1:所述推送服务器根据所述加密策略对所述业务序号和设备标识进行处理生成查询指令并发送给所述业务系统;
步骤B2:所述业务系统对接收到的查询指令进行解析,根据解析得到的设备标识获取对应的加密策略,根据所述加密策略对接收到的查询指令进行验证,如验证成功则执行步骤B3,否则报错;
步骤B3:所述业务系统根据解析得到的业务序号查找对应的业务处理状态,根据所述加密策略对业务处理状态和设备标识进行处理生成查询响应;
步骤B4:所述业务系统将所述查询响应返回给所述推送服务器,执行步骤B5;
步骤B5:所述推送服务器对接收到的所述查询响应进行解析,获取当前长连接的设备标识,根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据加密策略对所述查询响应的解析结果进行验证,如验证成功则执行步骤B6,如验证失败则报错;
步骤B6:所述推送服务器从所述查询响应的解析结果中获取业务处理状态,使用所述设备密钥对所述业务处理状态进行加密生成查询响应密文,并将查询响应密文发送给所述终端设备,执行步骤B7;
步骤B7:所述终端设备使用所述设备密钥对接收到的查询响应密文进行解密,从解密成功的数据中提取业务处理状态并进行播报。
5.如权利要求1-3任意一项所述的方法,其特征在于,还包括:
步骤C1:当所述终端设备接收到商户在所述菜单界面触发的查询信息时显示业务页面,当接收到商户选择的业务时,根据所述业务中的业务序号生成查询请求,使用保存的设备密钥对所述查询请求进行加密并将查询请求密文发送给所述推送服务器;
步骤C2:所述推送服务器获取当前长连接的设备标识,根据所述设备标识获取对应的设备密钥,使用所述设备密钥对接收到的查询请求密文进行解密,如解密成功则从解密结果中获取业务序号,执行步骤C3,如解密失败则报错;
步骤C3:所述推送服务根据所述业务序号判断是否保存有对应的业务处理状态,是则使用所述设备密钥对所述业务处理状态进行加密生成查询响应密文,并将查询响应密文发送给所述终端设备,执行步骤C10,否则执行步骤C4;
步骤C4:所述推送服务器根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对所述业务序号和所述设备标识进行处理生成查询指令并发送给所述业务系统;
步骤C5:所述业务系统对接收到的查询指令进行解析,根据解析得到的设备标识获取对应的加密策略,根据所述加密策略对接收到的所述查询指令进行验证,如验证成功则执行步骤C6,否则报错;
步骤C6:所述业务系统根据解析得到的业务序号查找对应的业务处理状态,根据所述加密策略对所述业务处理状态和所述设备标识进行处理生成查询响应;
步骤C7:所述业务系统将所述查询响应返回给所述推送服务器,执行步骤C8;
步骤C8:所述推送服务器对接收到的查询响应进行解析,获取当前长连接的设备标识,根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对所述查询响应的解析结果进行验证,如验证成功则执行步骤C9,如验证失败则报错;
步骤C9:所述推送服务器从查询响应的解析结果中获取业务处理状态,使用与所述设备标识对应的设备密钥对所述业务处理状态进行加密生成查询响应密文,并将查询响应密文发送给所述终端设备,执行步骤C10;
步骤C10:所述终端设备使用所述设备密钥对接收到的查询响应密文进行解密,从解密成功的数据中提取业务处理状态并进行播报。
6.如权利要求1-3任意一项所述的方法,其特征在于,还包括:
步骤D1:当所述终端设备接收到商户在所述菜单界面触发的还原信息时显示业务页面,当接收到商户选择的业务时,根据业务中的业务序号生成还原请求,使用设备密钥对还原请求进行加密;
步骤D2:所述终端设备将还原请求密文发送给所述推送服务器;
步骤D3:所述推送服务器获取当前长连接的设备标识,根据所述设备标识获取对应的设备密钥,使用所述设备密钥对接收到的所述还原请求密文进行解密,如解密成功则根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对解密成功得到的业务序号和所述设备标识进行处理生成还原指令,执行步骤D4,否则报错;
步骤D4:所述推送服务器将还原指令发送给所述业务系统;
步骤D5:所述业务系统对接收到的所述还原指令进行解析,根据所述还原指令的解析结果中的设备标识获取对应加密策略,根据所述加密策略对所述还原指令进行验证,如验证成功则执行步骤D6,如验证失败则报错;
步骤D6:所述业务系统根据所述还原指令的解析结果中的业务序号进行还原处理得到还原结果,使用所述加密策略对所述还原结果和所述设备标识进行处理生成还原处理结果;
步骤D7:所述业务系统将所述还原处理结果发送给所述推送服务器;
步骤D8:所述推送服务器对接收到的所述还原处理结果进行解析,获取当前长连接的设备标识,根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对所述还原处理结果的解析结果进行验证,如验证成功则执行步骤D9,如验证失败则报错;
步骤D9:所述推送服务器从所述还原处理结果的解析结果中获取还原结果,使用与所述设备标识对应的设备密钥对所述还原结果进行加密得到还原响应密文,将还原响应密文发送给所述终端设备,执行步骤D10;
步骤D10:所述终端设备使用所述设备密钥对接收到的所述还原响应密文进行解密,从解密成功的数据中提取还原结果并进行播报。
7.如权利要求1-3任意一项所述的方法,其特征在于,所述终端设备登录推送服务器并从所述推送服务器中获取企业信息,包括:
步骤201:所述终端设备根据设备标识和登录信息组装登录请求,并将所述登录请求发送给所述推送服务器;
步骤202:所述推送服务器对接收到的所述登录请求进行解析,根据解析得到的设备标识获取对应的设备密钥,使用所述设备密钥对登录请求进行验证,如验证合法则生成包含登录成功的登录响应并返回给所述终端设备,与所述终端设备建立长连接,执行步骤203,如验证不合法则生成包含登录失败的登录响应并返回给所述终端设备;
步骤203:所述推送服务器根据所述设备标识获取设备所属的企业信息,并根据所述企业信息和终端设备的设备激活状态组装设备所属企业通知报文,使用所述设备密钥对所述企业通知报文进行加密得到企业通知报文密文;
步骤204:所述推送服务器将所述设备所属企业通知报文密文发送给所述终端设备;
步骤205:所述终端设备使用所述设备密钥对接收到的所述设备所属企业通知报文密文进行验证,如验证通过则从所述设备所属企业通知报文密文中获取设备所属的企业信息并保存,如验证未通过则报错。
8.如权利要求7所述的方法,其特征在于,所述步骤201之前还包括:
步骤200:所述终端设备开机,接收烧录的三元组信息并保存;
所述三元组信息包括:产品密钥、设备标识、设备密钥。
9.如权利要求8所述的方法,其特征在于,所述步骤201之前还包括:
所述推送服务器接收导入的所述三元组信息和设备所属的企业信息,将所述三元组信息和所述企业信息对应保存到数据库中;
所述业务系统接收业务人员输入的设备标识和商户信息并对应保存。
10.如权利要求7所述的方法,其特征在于,所述步骤201之前还包括:终端设备生成登录信息。
11.如权利要求10所述的方法,其特征在于,所述登录信息包括登录名和密码,所述终端设备生成登录信息具体包括:所述终端设备将交互协议版本号、产品密钥、安全模式、加密方式和时间戳按照顺序使用预设符号进行拼接得到登录名,使用所述设备密钥对所述登录名进行签名,将签名结果转换为十六进制字符串得到密码。
12.如权利要求7所述的方法,其特征在于,所述步骤201之后还包括:如终端设备在预设时间内未收到所述推送服务器返回的登录响应时会间隔预设时长重新发送所述登录请求给所述推送服务器,直到收到所述推送服务器的登录响应。
13.如权利要求7所述的方法,其特征在于,所述终端设备接收到包含登录成功的登录响应后执行步骤T1-步骤T2和步骤W1-步骤W2;
步骤T1:所述终端设备获取基站和WIFI信息,并根据所述基站和所述WIFI信息组成地理位置信息,使用所述设备密钥对所述地理位置信息进行加密并将地理位置信息密文发送给所述推送服务器;
步骤T2:所述推送服务器获取当前长连接的设备标识,根据所述设备标识从数据库中获取对应的设备密钥,使用所述设备密钥对接收到的地理位置信息密文进行解密,并保存解密成功得到的地理位置信息;
步骤W1:所述终端设备获取插入的SIM卡信息,根据所述SIM卡信息生成设备基础信息,使用所述设备密钥对所述设备基础信息进行加密并将设备基础信息密文发送给所述推送服务器;
步骤W2:所述推送服务器获取当前长连接的设备标识,根据所述设备标识从数据库中获取对应的设备密钥,使用所述设备密钥对接收到的设备基础信息密文进行解密,保存解密成功得到的设备基础信息。
14.如权利要求7所述的方法,其特征在于,所述步骤205中验证成功之后还包括:从所述设备所属企业通知报文密文中获取设备激活状态并显示;
所述判断自身设备是否已激活包括:所述终端设备根据所述设备激活状态判断自身设备是否已激活,如设备激活状态为已激活则终端设备已激活,如设备激活状态为未激活则终端设备未激活。
15.如权利要求1所述的方法,其特征在于,所述进行激活操作,包括:
步骤P1:所述终端设备根据商户输入的激活码生成设备激活请求,使用所述设备密钥对所述设备激活请求进行加密并将设备激活请求密文发送给所述推送服务器;
步骤P2:所述推送服务器获取当前长连接的设备标识,根据所述设备标识从数据库中获取对应的设备密钥,使用所述设备密钥对接收到的所述设备激活请求密文进行解密,如解密成功则执行步骤P3,如解密失败则激活失败,报错;
步骤P3:所述推送服务器根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对所述设备标识和所述设备激活请求密文的解密结果进行处理生成设备激活指令并将所述设备激活指令发送给所述业务系统;
步骤P4:所述业务系统对接收到的所述设备激活指令进行解析,根据解析得到的设备标识获取对应加密策略,根据所述加密策略对所述设备激活指令进行验证,如验证成功则执行步骤P5,否则激活失败,报错;
步骤P5:所述业务系统生成设备激活成功信息,根据所述加密策略对所述设备激活成功信息进行处理,并将激活处理结果返回给所述推送服务器,执行步骤P6;
步骤P6:所述推送服务器对接收到激活处理结果进行解析,获取当前长连接的设备标识,根据所述设备标识获取对应的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对所述激活处理结果的解析结果进行验证,如验证成功则从所述激活处理结果的解析结果中获取激活结果,根据激活结果组装激活响应,使用所述设备密钥对所述激活响应进行加密并将激活响应密文返回给所述终端设备,如验证失败则激活失败,报错;
步骤P7:所述终端设备使用设备密钥对接收到的所述激活响应密文进行解密,根据解密结果判断终端设备是否激活成功,是则执行步骤S2,否则激活失败,报错。
16.一种业务处理的实现系统,其特征在于,包括:终端设备、推送服务器和业务系统;
所述终端设备用于登录推送服务器并从所述推送服务器中获取企业信息,根据所述企业信息显示相应的业务处理页面,判断自身设备是否已激活,如未激活则进行激活操作;
所述终端设备还用于在激活之后接收商户输入的业务信息;当通过扫描用户设备获取到待处理信息时,根据所述待处理信息和业务序号生成业务处理请求,使用设备密钥对所述业务处理请求进行加密,并将业务处理请求密文发送给所述推送服务器;
所述推送服务器用于在接收到业务处理请求密文后获取当前长连接的设备标识,根据所述设备标识获取对应的设备密钥,使用所述设备密钥对接收到的所述业务处理请求密文进行解密,如解密成功则根据所述设备标识获取对应的预置的企业信息,从所述企业信息中获取加密策略,据加密策略对解密成功得到的待处理信息和所述设备标识进行处理生成业务处理指令,将所述业务处理指令发送给所述业务系统;
所述业务系统用于对接收到的所述业务处理指令进行解析,根据解析得到的设备标识获取对应的加密策略,根据所述加密策略对所述业务处理指令进行验证,如验证成功则从所述业务处理指令的解析结果中获取待处理信息,对所述待处理信息进行处理得到第一处理结果,使用所述加密策略对第一处理结果、生成的业务序号和所述设备标识进行处理生成业务处理结果,将业务处理结果返回给所述推送服务器;
所述推送服务器还用于对所述业务处理结果进行解析,获取当前长连接的设备标识,根据所述设备标识获取对应的预置的企业信息,从所述企业信息中获取加密策略,根据所述加密策略对所述业务处理结果的解析结果进行验证,如验证成功则根据所述业务处理结果的解析结果生成业务处理响应,使用所述设备密钥对业务处理响应进行加密,并将业务处理响应密文发送给所述终端设备;
所述终端设备还用于使用所示设备密钥对接收到的业务处理响应密文进行解密,从解密成功的数据中提取第一处理结果并进行播报;
所述终端设备还用于当接收到商户的第一触发信息时根据所述企业信息显示对应的菜单界面。
17.一种电子设备,其特征在于,所述电子设备包括至少一个处理器、存储器及存储在所述存储器上并可被所述至少一个处理器执行的指令,所述至少一个处理器执行所述指令以实现权利要求1至15任一项所述的业务处理的实现方法。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机程序,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至15任一项所述的业务处理的实现方法。
19.一种芯片系统,其特征在于,包括芯片,所述芯片与存储器耦合,用于执行所述存储器中存储的计算机程序,以执行权利要求1-15任一项所述的业务处理的实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211186562.0A CN115296822B (zh) | 2022-09-28 | 2022-09-28 | 一种业务处理的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211186562.0A CN115296822B (zh) | 2022-09-28 | 2022-09-28 | 一种业务处理的实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115296822A true CN115296822A (zh) | 2022-11-04 |
CN115296822B CN115296822B (zh) | 2022-12-20 |
Family
ID=83834012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211186562.0A Active CN115296822B (zh) | 2022-09-28 | 2022-09-28 | 一种业务处理的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115296822B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116582534A (zh) * | 2023-07-11 | 2023-08-11 | 飞天诚信科技股份有限公司 | 一种数据播报的实现方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016218825A (ja) * | 2015-05-22 | 2016-12-22 | 株式会社野村総合研究所 | シングルサインオンシステム、シングルサインオン方法およびコンピュータプログラム |
CN107395767A (zh) * | 2017-08-31 | 2017-11-24 | 北京奇虎科技有限公司 | 基于长连接的消息推送系统及方法 |
CN111522516A (zh) * | 2020-07-06 | 2020-08-11 | 飞天诚信科技股份有限公司 | 一种云播报打印数据的处理方法及系统 |
CN111740846A (zh) * | 2020-08-04 | 2020-10-02 | 飞天诚信科技股份有限公司 | 一种移动终端读取智能卡信息的实现方法及系统 |
US20210136063A1 (en) * | 2019-11-06 | 2021-05-06 | Capital One Services, Llc | Systems and methods for identifying suspicious logins |
CN114330616A (zh) * | 2021-12-30 | 2022-04-12 | 飞天诚信科技股份有限公司 | 一种扫码实现业务处理的方法及系统 |
-
2022
- 2022-09-28 CN CN202211186562.0A patent/CN115296822B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016218825A (ja) * | 2015-05-22 | 2016-12-22 | 株式会社野村総合研究所 | シングルサインオンシステム、シングルサインオン方法およびコンピュータプログラム |
CN107395767A (zh) * | 2017-08-31 | 2017-11-24 | 北京奇虎科技有限公司 | 基于长连接的消息推送系统及方法 |
US20210136063A1 (en) * | 2019-11-06 | 2021-05-06 | Capital One Services, Llc | Systems and methods for identifying suspicious logins |
CN111522516A (zh) * | 2020-07-06 | 2020-08-11 | 飞天诚信科技股份有限公司 | 一种云播报打印数据的处理方法及系统 |
CN111740846A (zh) * | 2020-08-04 | 2020-10-02 | 飞天诚信科技股份有限公司 | 一种移动终端读取智能卡信息的实现方法及系统 |
CN114330616A (zh) * | 2021-12-30 | 2022-04-12 | 飞天诚信科技股份有限公司 | 一种扫码实现业务处理的方法及系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116582534A (zh) * | 2023-07-11 | 2023-08-11 | 飞天诚信科技股份有限公司 | 一种数据播报的实现方法及系统 |
CN116582534B (zh) * | 2023-07-11 | 2023-09-19 | 飞天诚信科技股份有限公司 | 一种数据播报的实现方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115296822B (zh) | 2022-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4216081A1 (en) | Information verification method, related apparatus, device, and storage medium | |
US20240095713A1 (en) | Method, client device and pos terminal for offline transaction | |
US20200169548A1 (en) | Network access authentication method, apparatus, and system | |
US20230362657A1 (en) | Method and device to establish a wireless secure link while maintaining privacy against tracking | |
EP1502383B1 (en) | Method for authenticating and verifying sms communications | |
EP2095288B1 (en) | Method for the secure storing of program state data in an electronic device | |
WO2018129754A1 (zh) | 一种eUICC配置文件管理方法及相关装置 | |
CN111131416A (zh) | 业务服务的提供方法和装置、存储介质、电子装置 | |
CN109660534B (zh) | 基于多商户的安全认证方法、装置、电子设备及存储介质 | |
CN112436936B (zh) | 一种具备量子加密功能的云存储方法及系统 | |
CN112507325B (zh) | 一种设备访问权限的管理方法、装置、设备及存储介质 | |
WO2018120938A1 (zh) | 密钥离线传输方法、终端和存储介质 | |
US20140180931A1 (en) | System and Method for Secure Wi-Fi- Based Payments Using Mobile Communication Devices | |
CN115296822B (zh) | 一种业务处理的实现方法及系统 | |
CN114598555B (zh) | 一种不同平台可切换的播报实现方法及系统 | |
US20230344626A1 (en) | Network connection management method and apparatus, readable medium, program product, and electronic device | |
CN114390524B (zh) | 一键登录业务的实现方法和装置 | |
CN114362931A (zh) | 一种物联网设备注册和安全认证连接及指令交互方法 | |
CN111132149B (zh) | 5g用户终端的注册方法、用户终端设备及介质 | |
CN112687363A (zh) | 健康码公共服务方法及平台 | |
CN111489462B (zh) | 一种个人用蓝牙钥匙系统 | |
CN114978543B (zh) | 一种凭证注册和认证的方法及系统 | |
CN111818521B (zh) | 一种基于数据中心5g网络加密组播的权限认证方法与系统 | |
CN105743859A (zh) | 一种轻应用认证的方法、装置及系统 | |
CN115150193A (zh) | 一种数据传输中敏感信息加密方法、系统和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |