具体实施方式
本申请的主要思想在于,结合密码安全技术和定位服务技术,提高数据交互过程中的工作效率以及安全性。具体而言,在用户进行数据交互之前,预先为第一用户分配具有有效时间的交互码。可以接收第二用户依据第一用户提供的交互码而形成的具有有效时间的授权码。其中,该授权码可以是,第一用户将其获得的交互码,传递给与该第一用户进行数据交互的第二用户,从而作为第二用户的授权码。进而,根据获取到的第一用户上报的第一用户的位置信息,和第二用户上报的第二用户的位置信息,确定第二用户周围一定范围内的一个或多个第一用户,并将接收的来自第二用户的该授权码与确定的一个或多个第一用户各自预先分配的交互码进行匹配。若存在相匹配的授权码和交互码,并且,该授权码和交互码都处于有效时间之内,则可以在该交互码对应的第一用户和该授权码对应的第二用户之间进行数据交互。若不存在相匹配的授权码和交互码,或者授权码和交互码已经超过有效时间,则不进行数据交互。
进一步地,密码安全技术可以采用一次性密码(OTP,One TimePassword)。一次性密码是指受有效时间、用户的限制,需要在一定时间内,由该一次性密码所绑定(对应)的用户,仅可以使用一次的随机密码。应用该密码安全技术,例如:交互码和授权码。定位服务技术可以采用基于位置的服务技术(LBS,Location Based Server),或者可以采用Wifi热点、蓝牙等技术,来实现对用户的定位功能。
进一步地,采用Wifi热点实现对用户的定位,可以是通过用户的移动终端,获取到该用户周围存在的Wifi热点的基本服务集标识符(Basic ServiceSet Identifier,Bssid)广播,由于该Bssid广播与地理位置存在对应关系,所以,可以根据该方法获得用户的位置信息。
进一步地,采用蓝牙技术实现对用户的定位,可以是通过蓝牙设备,并且该蓝牙设备在服务器侧已经具有准确的位置信息,用户可以通过蓝牙功能搜索该蓝牙设备,进而通过用户与蓝牙设备的位置关系,确定出用户的位置信息。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
如图1所示,图1是根据本申请数据交互方法的一实施例的流程图。该实施例的流程中主要以LBS、OTP为例。
步骤S110处,预先为发送交互码请求的第一用户分配交互码,并且预先获取该第一用户的位置信息。第一用户通常会有一个或多个。
其中,可以在第一用户发送交互码请求时,和/或在第一用户发送交互码请求之前,和/或在第一用户发送交互码请求之后,获取第一用户的位置信息。
<预先为发送交互码请求的第一用户分配交互码>
交互码可以是一次性密码。交互码可以作为第一用户和第二用户进行数据交互的口令;或者,依据该交互码形成第一用户和第二用户进行数据交互的口令。第一用户和第二用户基于该口令,可以进行数据交互。第一用户向服务器侧发送的交互码请求,可以用于向服务器侧请求,以获取交互码。
具体而言,第一用户在需要进行数据交互之前,可以向服务器发送用于获取交互码的交互码请求。其中,在该交互码请求中可以包括用户的身份信息,例如,第一用户的用户ID。第一用户的用户ID具有唯一性,利用第一用户的用户ID可以标识唯一的一个第一用户,以使所有第一用户的用户ID不重复。服务器根据该交互码请求,可以分析出发送该交互码请求的第一用户(用户ID)。可以在进行数据交互之前,根据该交互码请求,为该第一用户预先分配交互码,并将该交互码与该第一用户(用户ID)进行绑定。该绑定包括与用户ID形成关联或对应关系等。比如,可以将分配给第一用户的交互码与该第一用户(用户ID)进行对应。进而,还可以将这种绑定关系存储在服务器侧,该关系参见表1,用户ID与交互码对应存储。
进一步地,一种情形,该交互码可以表示为:具有唯一性的随机数据,并且该交互码拥有有效时间、且在该有效时间内,仅由与该交互码绑定(对应)的第一用户使用一次。另一种情形,该交互码也可以表示为:一定范围内具有唯一性的、随机数据,其拥有有效时间、且在所述有效时间内能由所述交互码绑定的第一用户仅使用一次。该随机数据(交互码)可以是数值、字母等。比如,服务器为第一用户随机生成交互码,该交互码包含有有效时间,在该交互码的有效时间内,保证该交互码在一定范围之内,不存在与该交互码重复(相同)的另外一个交互码,并且,该交互码不可重复使用即仅由该第一用户使用一次。该“一定范围”可以是一预先设置的地理区域范围,例如:北京市可以是一个地理区域范围。
具体来说,该交互码的有效时间,表示该交互码需要在有效时间之内使用,超过该有效时间即失效、作废。例如:交互码有效时间为8小时,生效时间为2013年9月5日凌晨1点整,那么,截止时间,即失效时间点在2013年9月5日9点整。因而,若获得该交互码的第一用户在2013年9月5日晚上22点整使用该交互码,与截止时间当天9点整比较,已经超过了当天9点整,即超过从生效时间开始的8个小时有效时间段,表明该交互码超过有效时间,已经失效、作废,因此,利用该交互码不能完成任何数据交互任务。进一步的,生效时间还可以是服务器根据请求生成交互码的时间,如前述2013年9月5日凌晨1点整。
该交互码只能由其所属的第一用户使用一次。例如:获得该交互码的第一用户在使用该交互码完成数据交互之后,就不能再次使用该交互码进行数据交互。该交互码可以与获得该交互码的第一用户进行绑定。例如:为一个用户ID为123的第一用户A,分配由服务器生成的一8位数的交互码“12345678”,那么可以将该交互码12345678对应于该第一用户A。
由前述交互码生成和设计可以保证,经分配得到该交互码的第一用户之外的其他用户不能破解或非法利用该交互码,以增加数据交互的安全性。
在一个实施例中,可以生成一个如表1所示的用户交互码信息表,用于存储为第一用户预先分配的交互码信息,可以包括获得交互码的第一用户的用户ID,交互码,交互码的生效时间,交互码的有效时间等等。
表1:
用户ID |
交互码 |
生效时间 |
有效时间 |
123 |
12345678 |
20130905-1:00 |
8小时 |
表1中所列为用户交互码信息表的示例,其中第一用户的用户ID为123,该第一用户的交互码为12345678,生成该交互码的时间,即交互码的生效时间为20130905-1:00(2013年9月5日,凌晨1点整),该交互码的有效时间为8小时,则该交互码的截止时间为2013年9月5日早上9点整,即交互码将在2013年9月5日早上9点整失效。
<预先获取来自一个或多个第一用户上报的位置信息,并进行存储>
第一用户上报的位置信息可以包括该第一用户的地理位置信息。第一用户的地理位置信息用于标识该第一用户所在的位置。第一用户的地理位置信息可以是该第一用户的全球定位信息(GPS,Global Positioning System)。
第一用户每一次上报的位置信息都可以携带该用户的身份信息,例如,携带第一用户的用户ID。将第一用户上报的位置信息和第一用户的用户ID对应起来,存储在服务器侧,以使服务器侧可以知道每一个第一用户当前所处的位置。第一用户上报的位置信息和对应该第一用户的唯一的用户ID一并发送给服务器,并被服务器接收进而获取该位置信息和用户ID,且对应存储,如表2所示。服务器可以根据第一用户上报的位置信息,更新存储的位置信息。
其中,第一用户可以通过采用基于位置的服务LBS(Location BasedServices)技术来实现定时和/或定点上报位置信息至服务器。进一步,第一用户可以在移动过程中,随着其位置实时变动,实时或定期将当时的位置信息上报给服务器,而服务器接收到第一用户上报的位置信息,可以更新在服务器侧存储的该第一用户的位置信息。
采用LBS技术定时上报位置信息,可以是以时间为参考量上报位置信息。如,第一用户可以周期性地(定时)上报位置信息,具体如,第一用户每隔10分钟向服务器上报一次。
采用LBS技术定点上报位置信息,可以是以特定位置为参考量上报位置信息。如,第一用户可以在某一wifi热点覆盖的一定范围内(定点),上报位置信息。
此外,第一用户还可以采用前述定时和定点相结合的方式上报位置信息。如,第一用户在一Wifi热点覆盖的一大型超市范围内(定点),以10分钟为一周期,周期性地(定时)上报位置信息。
服务器可以根据第一用户定时和/或定点上报来的位置信息,将该第一用户上报的位置信息添加至表1的用户交互码信息表中,更新或新建相应的用户交互码信息表。如表2所示:
表2:
在表2中,如果是首次收到第一用户上报的位置信息,服务器可以在交互码信息表中新建该第一用户的位置信息一栏,即添加第一用户(用户ID为123的用户)的位置信息,如:北纬39”26’,东经115”25’。该位置信息可以随着第一用户的移动而发生变化,即如果非首次收到上报的位置信息,服务器可以根据每次接收(获取)到的第一用户的位置信息,实时更新该表2中相应的用户ID对应的位置信息,以便能够确定第一用户的当时准确位置信息,即确定当时所在的位置。
一个具体应用的例子:使用一终端设备的第一用户,如一手机用户,在手机上安装一个客户端程序(App),该手机用户可以通过该App向对应的服务器申请交互码。该交互码是由该服务器随机生成的,如一个未使用的8位数字,并将该8位数字绑定该手机用户的账户。同时,设定8位数字的有效期如8小时。该手机用户客户端App还可以显示获得的该交互码。并且,可以通过该手机的该App,检测该手机用户的地理位置变化,进而可以采用定时/周期性等方式,将手机用户的账户信息、LBS信息传输到服务器侧。另外,采用定时上报LBS信息的方式,如,可以监控LBS定时器是否超时,超时就让该App上报该手机用户位置信息等,没超时就处于等待状态。
在步骤S120处,接收第二用户提交的数据交互请求,并且获取该第二用户的位置信息。数据交互请求,包括请求数据交互处理的信息。获取第二用户的位置信息能够确定该第二用户的位置。第二用户可以有一个或多个。
其中,可以在第二用户发送或提交(发送/提交)数据交互请求时,和/或在第二用户提交数据交互请求之前,和/或在第二用户提交数据交互请求之后,获取该第二用户的位置信息。
<接收来自第二用户发送或提交的数据交互请求>。
该请求数据交互处理的信息(数据交互请求)中至少包括了该第二用户的身份信息、以及根据第一用户传递来的交互码所形成的授权码。
这里,授权码,表示第一用户给第二用户授予的权限,可以作为第一用户和第二用户进行数据交互的口令。其中,第一用户将预先分配得到的交互码传递给第二用户,以形成第二用户的授权码。根据第一用户传递的交互码,形成第二用户的授权码的方式,例如,一种较为简单的方式,第二用户可以直接将第一用户传递来的交互码作为授权码;或者,也可以采用将交互码加解密、添加其他标识等其他预定规则的方式,形成授权码。由此,第二用户可以通过该授权码来进行与该第一用户的数据交互。
具体而言,在第一用户与第二用户的数据交互之前,第一用户可以将其交互码传递(或告知/发送/输入)给第二用户,第二用户以该交互码形成第二用户的授权码。由此,在第一用户允许(或者说授权)的前提下,第二用户才可以有机会与第一用户进行数据交互,或者从第一用户处获得数据。
一种方式,第一用户可以将其预先获得的交互码传递(告知/传送)给第二用户,以该交互码作为第二用户的授权码,即数据交互口令,表示第一用户对第二用户的授权,准许该第二用户从第一用户处获得数据。
例如,第一用户在服务器侧的个人网盘中存储有第二用户想要获得的数据,那么第二用户可以通过输入第一用户传递过来的授权码(交互码),向服务器请求从该第一用户的个人网盘中获得该数据。
第二用户将其授权码发送至服务器一侧,以便服务器可以利用接收到的该授权码,而在第一用户和第二用户之间建立数据交互的通道,最终能完成数据交互。在第二用户向服务器发送授权码的同时,可以将第二用户的身份信息,例如第二用户的用户ID等一并发送至服务器,以便服务器可以根据第二用户的用户ID辨别出是哪一个第二用户发送的授权码。其中,第二用户的用户ID具有唯一性,用第二用户的用户ID标识唯一的一个第二用户,以使每一个第二用户的用户ID不重复。
<获取第二用户的位置信息>
每个第二用户可以向服务器提交或者说上报其位置信息。第二用户的位置信息可以包括第二用户的地理位置信息,用于标识该第二用户所在的位置。第二用户的地理位置信息可以是该第二用户的GPS信息。服务器可以根据提交来的第二用户的位置信息确定第二用户的位置。与前述第一用户的位置信息类似,在此不再赘述。
在一个方式中,第二用户的位置信息,可以是第二用户预先上报的。预先上报的位置信息,可以对应其身份信息预先存储在服务器一侧,形成该第二用户的记录。该第二用户的位置如果未发生改变,那么该第二用户的位置信息可以不必更新,如果发生改变,可以重新提交或上报以更新。如果服务器接收到该第二用户的请求数据交互处理的信息,那么,可以根据该请求数据交互处理的信息中的身份信息(例:用户ID)等,对应找到存储记录了该身份信息对应的第二用户,找到其记录的位置信息,获取其中记录的位置信息,由此确定请求数据交互处理的该第二用户的位置。如果第二用户的位置相对固定,不会经常被移动,可以用此方式将第二用户的位置信息预先存储在服务器侧,第二用户可以不用上报或只在被移动时才上报位置信息。
在另一个方式中,第二用户也可以在发送授权码时,上报其位置信息,比如,将该第二用户的位置信息包含在该发送的请求数据交互处理的信息中,随着授权码、身份信息等一并传到服务器。进一步,从该请求数据交互处理的信息中获取授权码、获取身份信息、以及对应该第二用户的位置信息,从而能确定其位置。进一步,如果与记录中的上一次、或者说之前上报并存储于记录中的位置信息不同,还可以更新之前存储的位置信息的内容表3所示,为服务器一侧存储的第二用户的位置信息表的一个例子。
表3:
表3中示意性地列出了第二用户与其位置信息的对应关系的记录,即第二用户与第二用户的位置信息存储的形式,但不限于此。例子中,第二用户的用户ID为456,对应于该用户ID为456的第二用户的位置信息为北纬39”26’,东经115”25’。当第二用户的位置发生变化时,可以通过上报的位置信息,由服务器定时或实时更新该第二用户的位置信息表的记录。
一个具体应用的例子(承前述具体应用例):该手机用户如果给一商户(第二用户)提供该手机用户的交互码“12345678”,商户将该交互码作为授权码输入到其收银机上,即授权码“12345678”。该收银机连接到服务器,则通过收银机,将该授权码和该商户的位置信息、身份信息等传送到服务器。服务器接收到这些信息,并找到存储的记录中,该商户及其对应的位置。
在步骤S130处,根据第二用户的位置信息以及一个或多个第一用户的位置信息,确定位置处于该第二用户所在位置一定范围内的一个或多个第一用户。
第二用户所在位置的“一定范围”,可以是根据需要预先设置的地理区域范围,类似前述分配交互码时所指的预先设置的地理区域范围。例如,如果第二用户是一个较大的超市时,其需要占用较大的场地,那么可以根据该超市所占场地大小,以该超市的位置的中心点为圆心,以500m为半径的圆形区域,可以设置为第二用户的一定范围。
在服务器一侧,由于已经存储或者获取各个第一用户的位置信息和第二用户的位置信息,可以将一个或多个第一用户的位置信息与发送了数据交互请求的第二用户的位置信息进行比较,以确定位于该第二用户所在位置的一定范围内的一个或多个第一用户。即以一个第二用户的位置为基础,搜索其预设区域内一个或多个第一用户。具体地,将来自第一用户的位置信息与来自第二用户的位置信息进行比较,第一用户的位置信息所指示的位置落入第二用户的位置信息所指示的位置所预先设置的地理区域范围内,可以确定第一用户是处于第二用户所在位置一定范围内的第一用户。
例如,第二用户的位置信息为经度120.1262,纬度30.2619,已存储的第一用户的位置信息包括:第一用户A的位置信息为经度120.1272,纬度30.2629,第一用户B的位置信息为120.1292,纬度30.2609,第一用户C的位置信息为120.1262,纬度30.2719。其中,若以第二用户的位置信息为圆心,设置500m半径范围内的区域,则第一用户A,第一用户B在第二用户周围的500m范围之内,第一用户C位于第二用户周围500m范围之外。
一个具体应用的例子(承前述具体应用例):由该商户(如其收银机)的位置,按地理位置搜索在其附近的手机用户。
在步骤S140处,将接收的来自第二用户提交的请求数据交互的信息中的授权码,与预先分配给位置处于该第二用户所在位置一定范围内的一个或多个第一用户的交互码进行匹配,并且,对该匹配到交互码的授权码的有效性进行验证。以便确定与第二用户的授权码相匹配的交互码、确定授权码的有效性,进而,还可以确定与该交互码对应的第一用户。
由于预先存储有第一用户和其对应(绑定)的交互码,所以,确定位置位于该第二用户所处位置一定范围内的一个或多个第一用户,可以知道该一个或多个第一用户中每一个第一用户所绑定的交互码。
可以将第二用户的授权码,与这些一个或多个第一用户的交互码进行匹配。做匹配,可以是依据该第二用户的授权码搜索这些一个或多个第一用户的交互码,如1:n,以授权码为搜索词,在n个交互码中搜索,其中n为自然数。
若存在匹配的授权码和交互码,即搜索到有关的交互码,如:该匹配的授权码和交互码的内容一致,或者,该匹配的授权码和交互码符合预先设定的规则等等,则可以表示存在相应的第一用户等。例如:当第二用户的授权码是直接使用的第一用户传递给该第二用户的预先获得的交互码时,存在匹配的授权码和交互码,即授权码与交互码内容一致。进而,如果能确定存在相匹配的授权码和交互码,可以参照表1、表2中的记录,确定该相匹配的交互码所绑定的第一用户。
若不存在匹配的授权码和交互码,即无法搜索到有关的交互码:无内容一致的交互码、或无符合一定规则的交互码,等等,则可以表示:第二用户提供的授权码存在错误,或提供交互码给该第二用户以形成其授权码的第一用户,并不在第二用户的所述一定范围内,等等。进一步的,若不存在匹配的授权码和交互码,可以将该授权码作废,进而可以通知第二用户数据交互的请求失败,即结束数据交互流程。
另外,可以验证授权码是否有效。可以先进行匹配,当存在与所述第二用户的所述授权码相匹配的交互码时,再验证所述授权码的有效性,进而,如果所述授权码被验证为失效,结束数据交互流程;先进行匹配,当不存在与所述第二用户的所述授权码相匹配的交互码时,则不再验证所述授权码的有效性,结束数据交互流程。
具体的,如果第二用户直接将第一用户传递的交互码作为授权码,则可以在服务器接收到第二用户的授权码时,或者,在服务器确定存在匹配的授权码和交互码时,验证该授权码是否在有效时间内,即验证其有效性。
进一步,第二用户接收到来自第一用户的交互码,直接作为授权码,发送给服务器侧。当位于该第二用户地理位置范围内的一个或多个第一用户中的一个第一用户的交互码,与第二用户的授权码相匹配时(如内容一致/相同/相等),还需要验证该授权码的有效性。若授权码不在有效时间内即被验证为失效或无效,则结束数据交互流程。若授权码在有效时间内即被验证为有效,则说明既有相匹配的交互码又属于有效期内,可以进行数据交互。
验证授权码是否有效的方式,可以采用将授权码上传时间与匹配该授权码的交互码的截止时间进行对比。若授权码的上传时间小于或等于该截止时间,则授权码有效。若授权码的上传时间大于(超过)该截止时间,则授权码无效。截止时间或者说有效时间截止点,例如表1、2中以生效时间加上有效时间获得的对应时间点,即为该交互码的截止时间。具体可以是,在匹配上了交互码,如:授权码与交互码相等后,根据如表1、2所示的内容,由1+8=9,确定交互码的有效时间是截止到2013年9月5日上午9点,同样,授权码的有效时间也就是截止到该日的上午9点。那么,如果服务器接收到该授权码的时间在2013年9月5日的9点以后,如:上午10点,那么从交互码生效时间凌晨1点到上午10点,9个小时,超出了有效时间8个小时,即为该交互码的有效时间之外,参见表1、2,该交互码过期,也表明该授权码过期(失效了)。也就是说,即便匹配上了交互码,但该交互码过期即该授权码也过期了,也不能执行数据交互,结束流程。进一步,还可以进行诸如:清除表1、2中的该交互码及其第一用户信息等处理。当然,如果接收到授权码的时间是该日8点,则表明匹配的交互码和该授权码都有效,可以进入步骤S150,执行该第二用户与该匹配上了交互码所对应的第一用户的数据交互处理。
本申请利用唯一的交互码可以避免出现相同的交互码,尤其是能避免在第二用户所处位置范围内,有两个第一用户的交互码相同。也即是说,不存在如:第一用户A与B同时有交互码12345678而无法确定应当与哪个第一用户进行数据交互的问题。
另外一种情形,交互码可以是在一定范围内具有唯一性的随机数据,其拥有有效时间、且在有效时间内能由交互码绑定的第一用户仅使用一次。该一定范围可是一个预设的地理区域范围,如北京地区,天津地区等,则可能存在不同区域中有随机数产生的交互码相同的情形,由此,在匹配交互码与授权码时,可能在第二用户所在位置一定范围内,存在多个与授权码相同的交互码,即多个相同的交互码,如失效的相同的交互码未在服务器及时清除的情形、或者另一区域的第一用户携带相同的交互码进入本区域的情形,那么,为了避免服务器在错误的、不需要进行数据交互的第一用户与第二用户之间进行数据交互,服务器也可以在匹配出多个相同的交互码时,向第二用户发送验证信息,验证需要与第二用户进行数据交互的第一用户的身份,以确定绑定相同的交互码的第一用户中的哪一个第一用户需要与第二用户进行数据交互。该验证信息,可以是要求将交互码传递给第二用户的第一用户提供其身份信息,如该第一用户的用户ID等等。服务器根据第一用户的用户ID确定出需要进行数据交互的第一用户。
一个例子,第二用户收到来自第一用户的交互码以授权码的方式传给服务器以请求数据交互,如授权码12345678,其与第一用户A、B的交互码都能匹配上。如果授权码是早上7点上传的,若A的截止于上午9点,而B的截止于早上6点,因为交互码存在有效期限制(表1、2),B的已经过期(早上7点超出早上6点),实际有效的是A的,即出现服务器中未清除失效了的B的过期交互码,进行了该有效性验证的操作,能将失效的授权码和交互码排除,不会去与失效的交互码对应的第一用户B进行数据交互,仅对还有效的进行数据交互。而为保证数据交互对象的正确和安全,出现存在多个与授权码匹配的交互码的情形,则还需要通过服务器向交互码有效的该第二用户发送验证信息,要求提供交互码的第一用户向该第二用户提供身份信息(如用户ID等),并反馈给服务器。以便服务器能验证是否为其存储的交互码还有效的第一用户,从而保障交互码有效的第一用户的数据安全,避免错误的数据交互。
另一个例子,其他地理区域范围内的第一用户C进入另一地理区域范围,并且恰巧在同一第二用户一定范围内的第一用户D与该第一用户C持有相同的交互码。一旦第二用户将得到的交互码作为授权码传给服务器,服务器会匹配到两个第一用户C、D的交互码,则服务器向第二用户发验证信息,要求提供交互码给该第二用户的第一用户提供用户ID,确定实际是要与哪个第一用户进行数据交互。
结束流程(结束数据交互流程),即拒绝执行与授权码相匹配的交互码对应的一个第一用户和第二用户之间的数据交互,可以通知用户数据交互失败。当然,一旦授权码验证有效并且同时又存在相匹配的交互码,则可以进行后面的数据交互,如步骤S150。
未成功匹配到一个第一用户的交互码,即不存在与所述授权码相匹配的交互码,或者,若授权码不在有效时间内即失效、超出了有效时间,则可以提示第一用户和第二用户“操作失败”,拒绝数据交互,结束流程。
一个具体应用的例子(承前述具体应用例):服务器根据该商户(如其收银机)的授权码,在查找到的其附近的所有手机用户存储在服务器里的信息中,搜索相应的交互码(如:与授权码相同的交互码),即做匹配。匹配成功,即匹配到一样的交互码,并且在有效期内,可以做下一步操作,如:从交互码对应的手机用户的账户扣款。若没有匹配到、不成功,结束流程返回失败、无法交易等信息到商户的收银机和/或手机用户。
在步骤S150处,当处于第二用户所在位置一定范围内的一个或多个第一用户中的一个第一用户的交互码,与第二用户的授权码相匹配,并且该第二用户的授权码为有效时,执行与该第二用户的授权码相匹配的交互码所对应的第一用户和第二用户之间的数据交互。
由于确定了与授权码匹配的交互码,则同时也确定了相应的第一用户,可以在发送授权码的第二用户和相匹配的交互码所绑定的第一用户之间,建立关联(建立数据交互的通道),以执行数据交互。
在建立关联的基础上,第二用户可以在第一用户处获得想要得到的数据。进一步地,当第一用户与第二用户建立关联后,服务器还可以接收到来自第二用户的数据请求,该数据请求对应第二用户想要从第一用户处获得的数据,服务器可以根据该数据请求,将对应于该数据请求的第一用户的数据,从第一用户转移至第二用户。反之,也可以根据建立的通道,服务器接收来自第一用户的数据请求,根据该数据请求,将第二用户的数据转移到第一用户。进而,当服务器成功将第一用户的数据转移给第二用户时,可以提示第一用户和第二用户“数据交互成功”的提示。另外,为安全起见,交互码/授权码除了是一次性失效,即只能用一次外,还设置了有效期(如前述8小时等),从而保证了在第二用户地理位置所预设的覆盖范围内的交互码/授权码的数量或者说容量足够小。比如一个第二用户附近的第一用户的数量为100人,而且这100人都申请了8位数的交互码/授权码比上10的8次方=1/1000000,这个概率很小,也就是说,同时第一用户与第二用户处于相近的位置、还能被暴力破解的概率很低。
在本申请中,第一用户可以在任何时间,任何地点申请(请求)获得交互码,只需携带该交互码,并在交互码的有效时间内使用即可与第二用户进行数据交互。例如:第一用户在去超市购物之前,即获得该交互码。在购物之后,第一用户将该交互码传递给第二用户,如,将交互码输入收银机中,收银机将该交互码作为授权码,并将该授权码以及需要从第一用户的账户中扣除的金额上传服务器,由服务器在第一用户的账户和第二用户的账户之间建立进行数据交互的通道,在第一用户的账户中扣除的相应的金额,并在第二用户的账户中增加该相应的金额。该过程第一用户和第二用户无需进行大量的数据操作,将数据交互(支付)过程的大量数据操作任务由服务器来完成,缩短了数据交互的时间,提高了数据交互的效率。
本申请还提供了一种数据交互的***。如图2所示,图2是根据本申请数据交互装置200的一实施例的结构图。
分配与获取模块210,可以用于预先为发送交互码请求的第一用户分配交互码,并且预先获取第一用户的位置信息。交互码表示具有唯一性的、随机数据,其拥有有效时间、且在有效时间内能由交互码绑定的第一用户仅使用一次。另外,交互码也可以只是在一定范围内唯一的随机数据,其拥有有效时间、且在有效时间内能由交互码绑定的第一用户仅使用一次。
该分配与获取模块210的具体实施过程可以参见步骤S110。
接收与获取模块220,可以用于接收第二用户提交的数据交互请求(请求数据交互处理的信息),并且获取该第二用户的位置信息。该接收与获取模块220的具体实施过程可以参见步骤S120。
确定模块230,可以用于根据第二用户的位置信息以及各个第一用户的位置信息,确定位置处于第二用户所在位置一定范围内的一个或多个第一用户。一定范围包括预先设置的地理区域范围。进一步地,将来自第一用户的位置信息与来自第二用户的位置信息进行比较,第一用户的位置信息所指示的位置落入第二用户的位置信息所指示的位置所预先设置的地理区域范围内,则确定第一用户是处于第二用户所在位置一定范围内的第一用户。
该确定模块230的具体实施过程可以参见步骤S130。
匹配模块240,可以用于匹配接收的来自第二用户的数据交互请求中的授权码与预先分配给处于第二用户所在位置一定范围内的一个或多个第一用户的交互码并且验证授权码的有效性。其中,第二用户的数据交互请求中的授权码是根据所述第一用户预先分配得到的交互码而形成的。当处于第二用户所在位置一定范围内的一个或多个第一用户的交互码中不存在与第二用户的授权码相匹配的交互码,或者,第二用户的授权码被验证为失效时,结束数据交互流程。进一步地,匹配和验证过程,可以先进行匹配,当存在与第二用户的授权码相匹配的交互码时,验证授权码的有效性;如果授权码被验证为失效,结束数据交互流程;先进行匹配,当不存在与第二用户的授权码相匹配的交互码时,则不再验证所述授权码的有效性,结束数据交互流程。进一步地,将授权码的上传时间和与授权码相匹配的交互码的截止时间进行比较;若授权码的上传时间小于或等于截止时间,则授权码有效。
该匹配模块240的具体实施过程可以参见步骤S140。
交互模块250,可以用于当处于第二用户所在位置一定范围内的一个或多个第一用户的交互码中,存在与第二用户的授权码相匹配的交互码,并且第二用户的授权码被验证为有效时,执行与第二用户的授权码相匹配的交互码对应的第一用户和第二用户之间的数据交互。该交互模块250的具体实施过程可以参见步骤S150。
由于图2所描述的本申请的装置所包括的各个模块的具体实施方式与本申请的方法中的步骤的具体实施方式是相对应的,由于已经对图1进行了详细的描述,所以为了不模糊本申请,在此不再对各个模块的具体细节进行描述。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上所述仅为本申请的实施例,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。