一种移动终端与POS终端的通信方法及系统 |
|||||||
申请号 | CN201410154811.7 | 申请日 | 2014-04-17 | 公开(公告)号 | CN103906000B | 公开(公告)日 | 2017-09-29 |
申请人 | 福建联迪商用设备有限公司; | 发明人 | 张炽成; 吴衍; | ||||
摘要 | 本 发明 公开一种移动终端与POS终端的通信方法,该方法包括步骤:在移动终端和POS终端分别封装用于填写广播信息的广播 接口 和用于获取广播信息的扫描接口;POS终端或移动终端的广播线程调用广播接口将经过加密后的广播信息填写至数据结构中的数据 载荷 得到加密数据载荷,封装生成广播数据包,然后使用ibeacon蓝牙模 块 广播所述广播数据包;进入所述POS终端广播区域的移动终端或进入所述移动终端广播区域的POS终端调用数据接 收线 程使用ibeacon蓝牙模块通过扫描接口的接口回调函数获取所述广播数据包,对广播数据包进行解封装得到加密数据载荷,然后对加密数据载荷其进行解密得到广播信息。本发明实现通过ibeacon广播和扫描数据。 | ||||||
权利要求 | 1.一种移动终端与POS终端的通信方法,其特征在于,包括步骤: |
||||||
说明书全文 | 一种移动终端与POS终端的通信方法及系统技术领域[0001] 本发明涉及通信领域,特别是涉及一种移动终端与POS终端的通信方法、装置及一种POS。 背景技术[0002] 在传统电子金融支付行业,金融POS(point of sale)机起着举足轻重的作用,很多的刷支付都是通过POS机进行的。但是随着移动电子商务的发展,手机消费渐渐成为人们目前消费一种重要支付手段,但是,手机时常连接于外网(通过3G网络与互联网连接),因此存在被木马病毒攻击的可能,鉴于手机消费的安全性,POS机的加入很好的解决了这个问题。 [0003] 但是随之而来的问题就是手机和POS机如何通信,当然通信方式多种多样,目前成熟可行的金融POS机和手机进行通讯的方式主要有三种方式: [0004] GPRS移动网络,数据传输安全可靠,使用灵活方便。它的最大优势是使现有的POS系统摆脱有线通信网的制约,由于GPRS覆盖范围广,采用无线接入POS机在手机可以使用的地方都可应用,可方便地部属于各种场合。 [0005] Wifi通信,数据传输稳定,速度快速,只要有一个无线路由,建立起一个无线局域网,两个wifi设备就可以进行通信,不需要通过运行商网络通信。 [0006] 蓝牙3.0通信,传输速率高传输稳定,不需要搭建无线路由,不需要借助外网,直接两个蓝牙设备可以直接通信。 [0007] 衡量手机与POS机之间的通信方式是否能够满足要求的主要有两个因素:一个是便捷性,另一个是安全性,因为只有这两点都达到了,才能简化用户消费流程,减小用户排队等候时间,在很大程度上优化用户体验。但是,上述通信方式在便捷性上存在问题,用户在支付体验上大打折扣,这些技术有如下缺点: [0009] Wifi通信,需要无线路由来搭建无线局域网,无法随时随地进行通讯,大大地限制了这一技术在POS和手机通信上的应用。 [0010] 蓝牙3.0通信,两个蓝牙设备在建立连接之前需要进行扫描配对等操作,过程繁琐,用户体验不高。 发明内容[0011] 本发明为解决上述技术问题,提供一种移动终端与POS终端的通信方法,该通信方法能够提高移动终端与POS终端的通信的便捷性,并且数据传输安全。 [0012] 一种移动终端与POS终端的通信方法,包括步骤: [0015] 进入所述POS终端广播区域的移动终端或进入所述移动终端广播区域的POS终端调用数据接收线程使用ibeacon蓝牙模块通过扫描接口的接口回调函数获取所述广播数据包,对广播数据包进行解封装得到加密数据载荷,然后对加密数据载荷其进行解密得到广播信息。 [0016] 本发明还公开一种移动终端与POS终端的通信系统,该通信系统包括移动终端和POS终端,所述移动终端包括第一接口封装模块、第一广播模块和第一扫描模块,所述POS终端包括第二接口封装模块、第二广播模块和第二扫描模块; [0017] 所述第一接口封装模块和第二接口封装模块分别用于在移动终端和POS终端封装用于填写广播信息的广播接口和用于获取广播信息的扫描接口,开启数据广播线程和数据扫描线程; [0018] 所述第一广播模块和第二广播模块分别用于通过POS终端或移动终端的广播线程调用广播接口将经过加密后的广播信息填写至数据结构中的数据载荷得到加密数据载荷,封装生成广播数据包,然后使用ibeacon蓝牙模块广播所述广播数据包; [0019] 所述第一扫描模块和第二扫描模块分别用于通过移动终端或POS终端调用数据接收线程使用ibeacon蓝牙模块通过扫描接口的接口回调函数获取所述广播数据包,对广播数据包进行解封装得到加密数据载荷,然后对加密数据载荷其进行解密得到广播信息。 [0020] 本发明还公开一种POS终端,该POS终端包括接口封装模块、广播模块和扫描模块; [0021] 所述接口封装模块用于封装用于填写广播信息的广播接口和用于获取广播信息的扫描接口,POS终端开启数据广播线程和数据扫描线程; [0022] 所述广播模块用于POS终端的广播线程调用广播接口将经过加密后的广播信息填写至数据结构中的数据载荷得到加密数据载荷,封装生成广播数据包,然后使用ibeacon蓝牙模块广播所述广播数据包; [0023] 所述扫描模块用于POS终端调用数据接收线程使用ibeacon蓝牙模块通过扫描接口的接口回调函数获取所述广播数据包,对广播数据包进行解封装得到加密数据载荷,然后对加密数据载荷其进行解密得到广播信息。 [0024] 本发明的有益效果为:本发明移动终端和POS终端通过广播接将待广播的广播信息填写至广播数据包中,并通过ibeacon的蓝牙模块广播所述广播数据包,通过扫描接口从接收到的广播数据中获取所述广播信息,从而实现数据广播与接收,该移动终端与POS终端通信方式无需借助其他网络(如WIFI、GPRS移动网络),且不需要进行扫描配对(如蓝牙),数据传输快捷方便。附图说明 [0025] 图1为本发明一实施方式一种移动终端与POS终端的通信方法的方法流程图; [0026] 图2为本发明一实施方式一种移动终端与POS终端的通信系统的功能框图; [0027] 图3为本发明一实施方式一种POS终端的功能框图; [0028] 图4为本发明一实施方式中数据结构的结构示意图; [0029] 图5为本发明一实例的执行流程图; [0030] 主要标号说明: [0031] 10-第一接口封装模块;20-第一广播模块;30-第一扫描模块;40-第二接口封装模块;50-第二广播模块;60-第二扫描模块;100-接口封装模块;200-广播模块;300-扫描模块。 具体实施方式[0032] 本发明通过在POS终端和移动终端封装用于填写广播信息的广播接口将待广播的数据插入到ibeacon的广播信息中进行广播,同时,通过封装用于获取广播信息的扫描接口扫描ibeacon广播信息并从中获取广播数据,从而实现广播数据的广播和接收。 [0033] ibeacon通信技术是由苹果公司提出来的一个概念,即采用低功耗蓝牙技术(Bluetooth Low Energy,简称ble)的广播和扫描方法来进行信息的发送和接收,由于广播和扫描的过程十分快捷,因此ibeacon通信方式十分方便高效,它主要应用在室内坐标定位导航等不涉及敏感信息的场景,这就决定了消息在这样的广播信息传递中可以是明文不需要加密的。 [0034] ibeacon技术原理是利用固定基站广播uuid信息,开启扫描的手机端进入到基站广播领域后,过滤到特定uuid信息,然后根据广播信号强度算出手机端和基站的距离,由于基站位置信息已知,所以手机的位置信息也能由此计算出来,最后再根据手机位置从网络云端去获取信息。 [0035] 为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。 [0036] 实施例一 [0037] 请参阅图1,本实施方式一种移动终端与POS终端的通信方法,该通信方法包括步骤: [0038] S1、在移动终端和POS终端分别封装用于填写广播信息的广播接口和用于获取广播信息的扫描接口,移动终端和POS终端均开启数据广播线程和数据扫描线程; [0039] S2、POS终端或移动终端的广播线程调用广播接口将经过加密后的广播信息填写至数据结构中的数据载荷得到加密数据载荷,封装生成广播数据包,然后使用ibeacon蓝牙模块广播所述广播数据包; [0040] S3、进入所述POS终端广播区域的移动终端或进入所述移动终端广播区域的POS终端调用数据接收线程使用ibeacon蓝牙模块通过扫描接口的接口回调函数获取所述广播数据包,对广播数据包进行解封装得到加密数据载荷,然后对加密数据载荷其进行解密得到广播信息。 [0041] 在本实施方式中,所述“使用ibeacon蓝牙模块广播所述广播数据包”的具体步骤包括: [0042] S10、移动终端或POS终端调用广播接口获得设备的hci层接口,并使用hci的套接字向hci层接口发送使能广播命令,hci层根据该使能广播命令使能ibeacon蓝牙模块的广播状态; [0043] S20、移动终端或POS终端调用广播接口使用hci的套接字向hci层接口发送设置广播数据命令,hci层接口将所述广播数据包设置为广播数据,并使用ibeacon蓝牙模块进行广播。 [0044] 在所述步骤S1中,所述移动终端和POS终端均开启数据广播线程和数据扫描线程,因此,移动终端和POS终端就能够同时进行数据的广播和扫描,实现POS终端与移动终端之间全双工通信。本发明通过在POS终端和移动终端封装用于填写广播信息的广播接口将待广播的数据插入到ibeacon的广播信息中进行广播,同时,通过封装用于获取广播信息的扫描接口扫描ibeacon广播信息并从中获取广播数据,从而实现广播数据的广播和接收。 [0045] 与现有的技术相比,本发明移动终端与POS终端之间的通信无需借助其他网络(如WIFI、GPRS移动网络),且不需要进行扫描配对(如蓝牙),数据传输快捷方便,并且广播的数据是密文数据,只有传输双向的POS终端和移动终端有加、解密密钥,从而保证数据传输安全。 [0046] 在本实施方式中,所述数据结构为广播数据载荷,所述接口回调函数具体用于通过扫描广播来获取广播数据包。即将广播信息填写至uuid信息位置处中,当广播本设备的自身信息的同时就将广播数据广播出去,所述扫描接口扫描广播,并从广播信息中分离出所述广播数据,因此,移动终端与POS终端就可通过扫描广播信息直接获取广播数据,无需进行扫描配对后再传输数据。 [0047] 在本实施方式中,所述POS终端或移动终端将待广播的广播信息填写至广播数据载荷中进行广播,该数据填写方式适用于广播一些数据大小较小的广播信息。在其他实施方式中,为了广播一些数据长度较大的广播数据,所述POS终端或移动终端可以将待广播的广播信息分割成一定长度的部分,并将各部分分别填写至不同的广播数据载荷中进行广播,具体步骤包括: [0048] S100、调用广播接口将加密后的广播信息按预设长度进行分割; [0049] S200、将分割后的各部分广播信息分别填写至不同数据结构的数据载荷中,将各部分广播信息在广播信息中的顺序填写至数据载荷的首字节,其中,所述数据结构还包括数据长度、数据类型。 [0050] 通过所述数据载荷的首字节中顺序可以快速的将接收到的广播数据拼接成完整的广播数据。 [0051] 实施例二 [0052] 一种移动终端与POS终端的通信系统,该通信系统包括移动终端和POS终端,所述移动终端包括第一接口封装模块10、第一广播模块20和第一扫描模块30,所述POS终端包括第二接口封装模块40、第二广播模块50和第二扫描模块60; [0053] 所述第一接口封装模块10和第二接口封装模块40分别用于在移动终端和POS终端封装用于填写广播信息的广播接口和用于获取广播信息的扫描接口,开启数据广播线程和数据扫描线程; [0054] 所述第一广播模块20和第二广播模块50分别用于通过POS终端或移动终端的广播线程调用广播接口将经过加密后的广播信息填写至数据结构中的数据载荷得到加密数据载荷,封装生成广播数据包,然后使用ibeacon蓝牙模块广播所述广播数据包; [0055] 所述第一扫描模块30和第二扫描模块60分别用于通过移动终端或POS终端调用数据接收线程使用ibeacon蓝牙模块通过扫描接口的接口回调函数获取所述广播数据包,对广播数据包进行解封装得到加密数据载荷,然后对加密数据载荷其进行解密得到广播信息。 [0056] 所述POS终端和移动终端通过广播接口将广播信息填写至数据结构中,并通过ibeacon模块广播所述广播数据包,通过扫描接口的回调函数获取所述广播数据包,因此,实现将广播数据通过ibeacon蓝牙直接广播,需要借助于外界网络(如WIFI、GPRS移动网络等),也无需进行扫描配对(如蓝牙传输数据前的配对),数据传输快捷方便。 [0057] 在本实施方式中,所述第一广播模块20、第二广播模块50、第一扫描模块30和第二扫描模块60通过蓝牙广播和扫描所述广播数据包,其中,所述广播接口通过将待广播的数据插入至ibeacon广播的广播数据载荷; [0058] 所述扫描接口通过扫描广播信息,并获取广播信息中的数据。 [0059] 即将广播信息填写至广播数据载荷中,当广播自身设备信息的同时就将广播数据广播出去,所述扫描接口扫描广播信息,并分离出所述广播数据,因此,移动终端与POS终端就可以直接获取广播数据,无需进行扫描配对后再传输数据。 [0060] 在本实施方式中,所述第一广播模块20和第二广播模块50包括使能单元和广播单元; [0061] 所述使能单元用于获取移动终端或POS终端的hci层接口,并使用hci的套接字给hci层接口发送命令,使能蓝牙设备的广播状态; [0062] 所述广播单元用于使用hci的套接字发送设置广播数据的命令,将加密后的广播数据包设置为广播数据,并进行广播数据包广播。 [0063] 第一广播模块20和第二广播模块50还包括数据封装单元; [0064] 所述数据封装单元用于调用广播接口将加密后的广播信息按预设长度进行分割; [0065] 以及用于将分割后的各部分广播信息分别填写至不同数据结构的数据载荷中,将各部分广播信息在广播信息中的顺序填写至数据载荷的首字节,其中,所述数据结构还包括数据长度、数据类型。 [0066] 实施例三 [0067] 一种POS终端,该POS终端包括接口封装模块100、广播模块200和扫描模块300; [0068] 所述接口封装模块100用于封装用于填写广播信息的广播接口和用于获取广播信息的扫描接口,POS终端开启数据广播线程和数据扫描线程; [0069] 所述广播模块200用于POS终端的广播线程调用广播接口将经过加密后的广播信息填写至数据结构中的数据载荷得到加密数据载荷,封装生成广播数据包,然后使用ibeacon蓝牙模块广播所述广播数据包; [0070] 所述扫描模块300用于POS终端调用数据接收线程使用ibeacon蓝牙模块通过扫描接口的接口回调函数获取所述广播数据包,对广播数据包进行解封装得到加密数据载荷,然后对加密数据载荷其进行解密得到广播信息。 [0071] 在需要向外广播信息时,所述POS终端通过广播接口将广播信息填写至数据结构中,并通过ibeacon蓝牙模块将广播信息广播出去;同时,通过扫描接口的回调函数获取所述广播数据包获取数据包,并从中获取得广播信息。本POS终端广播信息和扫描获取广播信息操作简单无需借助于外部网络(WIFI、GPRS网络),且无需进行配对操作,提高了数据广播和扫描的便捷性。 [0072] 在本实施方式中,所述广播模块200和扫描模块300通过蓝牙广播和扫描所述广播数据包,其中,所述广播接口通过将待广播的数据插入至ibeacon广播的数据载荷中; [0073] 所述扫描接口通过扫描外围设备的广播信息,并获取广播信息中的数据。即将广播信息填写至广播数据载荷中,当广播自身设备信息的同时就将广播数据广播出去,所述扫描接口扫描广播信息,并分离出所述广播数据,因此,移动终端与POS终端就可通过扫描外围设备的广播信息直接获取广播数据,无需进行扫描配对后再传输数据。 [0074] 综上所述,本发明移动终端和POS终端通过广播接将待广播的广播信息填写至广播数据包中,并通过ibeacon的蓝牙模块广播所述广播数据包,通过扫描接口从接收到的广播数据中获取所述广播信息,从而实现数据广播与接收,该移动终端与POS终端通信方式无需借助其他网络(如WIFI、GPRS移动网络),且不需要进行扫描配对(如蓝牙),数据传输快捷方便。 [0075] 示例 [0076] 下面通过一具体手机(即移动终端)与POS终端通信的实例对本发明进行说明。 [0077] 在本实施中,所述POS终端和移动终端分别封装用于填写广播信息的广播接口和用于获取广播信息的扫描接口,移动终端和POS终端均开启数据广播线程和数据扫描线程,因此POS终端和移动终端可以通过广播接口和扫描接口相互发送接收信息。如图5所示,手机与POS终端通讯步骤如下: [0078] 步骤1)POS端启动初始化后,开启数据广播线程和数据扫描线程,数据发送线程负责发送广播,数据接收线程负责扫描广播。 [0079] 步骤2)POS端的上层应用程序将待发送的广播信息进行加密。(ibeacon技术中没有做数据的加密,在本方案中要实现数据加密,加密不仅要安全可靠,加密和解密还要考虑对移动端软硬件实现的难易程度和会不会降低数据传输速率等方面。) [0080] 步骤3)POS端的发送线程封装广播数据包,广播数据包是由n个AD Structure构成,n可以是1。 [0081] 其中,AD Structure的结构如图4所示。每一个AD Structure是由长度(AD Length)、类型(AD Type)和载荷(AD Payload)构成,长度填写的是当前AD Structure的总长,类型里只有0x3D之后且不包含0xFF的数字才是用户自定义的,从0x01到0x3D还有0xFF都被标准的GAP协议使用了,载荷用来写入广播数据。 [0082] 发送端对加密后的待发送的广播信息的长度进行判断,确定是否是长报文,是否需要分成多个分部来发送。AD Structure结构中的类型来区分数据是否是长报文的分部,如果是,则可以在载荷的首字节填写每一分部的顺序数字,这样接收端接收到每一个分部就可以组装成长报文了。 [0083] 加密数据按广播数据包格式来封装。 [0084] 步骤4)POS端的数据发送线程广播加密后的数据包。 [0085] 其中,广播加密后的数据包的具体过程是:先获得设备的hci层接口,使用hci的套接字给hci层接口发送命令,使能ble处于广播状态。ble处于广播状态之后,再使用hci的套接字发送设置广播数据的命令,将加密后的数据包设置为广播数据,如果要发送多个报文,就每隔一定时间用同样的方法设置一次广播数据。 [0086] 其中,hci为:主机控制接口(Host Controller Interface,简写hci),是主机和蓝牙模块之间运送控制信息的接口,是蓝牙协议栈的重要组成部分。 [0087] 步骤5)手机端开启数据发送线程和数据接收线程,数据发送线程负责发送广播,数据接收线程负责扫描广播。 [0088] 步骤6)手机端的数据接收线程打开扫描广播数据功能。使用使能低功耗蓝牙模块即ble的扫描接口,使能扫描功能。 [0089] 步骤7)当手机端进入到POS端的广播领域后,手机端数据接收线程通过扫描广播的接口回调函数能接收到广播的数据包。 [0090] 步骤8)手机端数据接收线程对收到的广播数据包根据广播数据包格式来进行解封装,获得到加密数据载荷。通过判断AD Structure的类型来确认是否是分次发送的载荷报文,如果是,就根据载荷的首字节顺序数字来组装加密报文。 [0091] 步骤9)手机端数据接收线程上层应用程序对加密报文数据进行解密,获得明文的广播信息。 [0092] 这时,全双工的通讯体现在POS端在发送广播的同时也能扫描手机端广播。 [0093] 步骤10)手机端的数据发送线程将待发送的明文广播信息进行加密。 [0094] 步骤11)手机端的数据发送线程封装广播数据包,过程同步骤3) [0095] 步骤12)手机端的数据发送线程广播加密后的数据包。具体过程是:先用设置广播数据接口设置好广播数据,然后再调用使能ble广播的接口,使能广播,这样广播数据就发送出去了。 [0096] 步骤13)POS端的数据接收线程使能ble扫描。具体过程是:获得设备的hci层接口,使用hci的套接字给hci层接口发送命令,使能ble处于扫描状态。 [0097] 步骤14)当POS端进入到手机端的广播领域后,POS端数据接收线程通过hci层的套接字能接受到广播数据。 [0098] 步骤15)POS端数据接收线程对收到的广播数据包根据广播数据包格式来进行解封装,获得到加密数据载荷。 [0099] 步骤16)POS端数据接收线程上层应用程序对加密报文数据进行解密,获得明文数据。 |