二维码的生成方法和二维码扫描事件的响应方法与流程

文档序号:11263689阅读:419来源:国知局
二维码的生成方法和二维码扫描事件的响应方法与流程

本发明涉及二维码技术领域,具体而言,特别涉及一种二维码的生成方法、装置和系统,以及二维码扫描事件的响应方法、装置和系统。



背景技术:

目前,在互联网领域二维码的应用比比皆是,生成二维码的方式也有很多。二维码承载的信息越多,生成的二维码图案也越复杂。二维码的复杂度也就影响到终端扫码的识别率,为此,简化二维码的承载信息就显得尤为必要。

为了解决该问题,现有技术中在转化二维码之前,先将待转化的长地址转换成短地址,其中,将长地址转换成短地址二维码的方式有两种:

第一种,借助第三方的接口或生成工具生成对应长地址的短地址,再由短地址生成二维码,例如微信接口能够将长地址转换为短地址,但是此种方式完全依赖第三方的处理结果,灵活性较差。

第二种,不依赖第三方、自己生成短地址的二维码。其基本步骤为:在服务端将长地址通过某种转换后得到短地址,在客户端将短地址生成二维码展现给用户。该种方式较第一种灵活性高,可按照自身需求进行长地址向短地址的转化。但是,发明人发现,现有技术中实现该方式时,用于生成二维码的短地址中的域名为服务端的唯一域名,因此生成二维码的短地址中的域名是唯一且固定不变的,进而,不满足现有技术中对短地址域名有所要求或限制的情况,也不满足对扫码来源请求区分的需求。



技术实现要素:

本发明的主要目的在于提供一种二维码的生成方法、装置、系统和二维码扫描事件的响应方法、装置、系统,以提出一种生成动态短地址域名二维码及响应该二维码扫描事件的方法,进而能够满足上述情况和需求。

一方面,本发明提供了一种二维码的生成方法,在服务端一侧,该生成方法包括:接收客户端发送的短地址请求,其中,短地址请求传递的参数包括长地址,短地址请求的请求地址中的域名为多域名中的一个,多域名均指向服务端的地址;提取请求地址中的域名;确定长地址对应的短字符串;以及将请求地址中的域名与短字符串拼接形成短地址发送至客户端,指示客户端根据短地址生成二维码。

进一步地,确定长地址对应的短字符串的步骤包括:以长地址为输入参数,采用预设计算方法进行计算,得到的计算结果为短字符串。

进一步地,确定长地址对应的短字符串的步骤包括:采用唯一字符串的构造方法进行字符串构造,构造出的唯一字符串作为短字符串,其中,唯一字符串构造方法与长地址无关。

进一步地,采用唯一字符串的构造方法,构造出唯一字符串作为与长地址对应的短字符串的步骤包括:调用java中生成通用唯一识别码的方法生成唯一字符串作为与长地址对应的短字符串。

进一步地,请求地址中的域名为预先配置的、与客户端的信息相绑定的域名。

进一步地,请求地址中的域名为预先配置的、与二维码展示的时空要求相绑定的域名。

进一步地,该生成方法还包括:存储长地址与其对应的短字符串至服务端的数据库和/或缓存。

进一步地,服务端包括请求分发节点和多个请求响应节点,接收客户端发送的短地址请求的步骤具体为:请求分发节点接收客户端发送的短地址请求,并将请求分发到多个请求响应节点中的一个;在将请求分发到多个请求响应节点中的一个之后,提取请求地址中的域名之前,该方法还包括:其中一个请求响应节点接收到请求后,在判断本节点下的服务不可用时,将请求导向到另一请求响应节点。

另一方面,本发明还提供了一种二维码扫描事件的响应方法,在服务端一侧,该响应方法包括:接收客户端发送的要求响应扫描事件的请求,其中,请求的请求地址为客户端扫描二维码后识别到的短地址,短地址中的域名为多域名中的一个,多域名均指向服务端的地址;提取短地址中的域名后的短字符串;查找短字符串对应的长地址;以及根据查找到的长地址响应扫描事件。

进一步地,根据查找到的长地址响应扫描事件包括:将请求重定向至长地址。

进一步地,,在服务端预置域名和响应规则的对应关系,在接收客户端发送的要求响应扫描事件的请求之后,根据查找到的长地址响应扫描事件之前,该方法还包括:提取短地址中的域名,根据查找到的长地址响应扫描事件具体包括:在对应关系中查找短地址中的域名对应的响应规则;按照查找到的响应规则处理长地址;以及将请求重定向至处理后的长地址。

进一步地,按照查找到的响应规则处理长地址包括:将长地址中的通用参数修改为响应规则中指定的个性化参数。

进一步地,服务端具有根据请求地址中的域名对接收到的请求进行分类统计的功能,在接收客户端发送的要求响应扫描事件的请求之后,该方法还包括:提取短地址中的域名;确定短地址中的域名在分类统计中所属的类别;以及更新类别对应的统计结果。

进一步地,查找短字符串对应的长地址包括:在缓存中查找短字符串对应的长地址;以及如果查找失败,在数据库中查找短字符串对应的长地址。

进一步地,服务端包括请求分发节点和多个请求响应节点,接收客户端发送的要求响应扫描事件的请求的步骤具体为:请求分发节点接收客户端发送的要求响应扫描事件的请求,并将请求分发到多个请求响应节点中的一个;在将请求分发到多个请求响应节点中的一个之后,提取短地址中的域名后的短字符串之前,方法还包括:其中一个请求响应节点接收到请求后,在判断本节点下的服务不可用时,将请求导向到另一请求响应节点。

另一方面,本发明还提供了一种二维码的生成装置,在服务端一侧,该生成装置包括:接收模块,用于接收客户端发送的短地址请求,其中,短地址请求传递的参数包括长地址,短地址请求的请求地址中的域名为多域名中的一个,多域名均指向服务端的地址;提取模块,用于提取请求地址中的域名;确定模块,用于确定长地址对应的短字符串;以及发送模块,用于将请求地址中的域名与短字符串拼接为短地址发送至客户端,指示客户端根据短地址生成二维码。

另一方面,本发明还提供了一种二维码扫描事件的响应装置,在服务端一侧,该响应装置包括:接收模块,用于接收客户端发送的要求响应扫描事件的请求,其中,请求的请求地址为客户端扫描二维码后识别到的短地址,短地址中的域名为多域名中的一个,多域名均指向服务端的地址;提取模块,用于提取短地址中的域名后的短字符串;查找模块,用于查找短字符串对应的长地址;以及响应模块,用于根据查找到的长地址响应扫描事件。

另一方面,本发明还提供了一种二维码的生成系统,该系统包括:客户端,用于创建短地址请求,其中,短地址请求传递的参数包括长地址,并接收服务端发送的长地址对应的短地址,并根据短地址生成二维码,其中,短地址请求的请求地址中的域名为多域名中的一个,多域名均指向服务端的地址;以及服务端,用于提取请求地址中的域名,并确定长地址对应的短字符串,最后将请求地址中的域名与短字符串拼接为短地址发送至客户端。

另一方面,本发明还提供了一种二维码扫描事件的响应系统,该系统包括:客户端,用于响应用户的二维码扫描操作,创建要求响应扫描事件的请求,并将请求发送至服务端,其中,请求的请求地址为客户端扫描二维码后识别到的短地址,短地址中的域名为多域名中的一个,多域名均指向服务端的地址;服务端,用于获取短地址中的域名后的短字符串,并查找短字符串对应的长地址,最后根据查找到的长地址响应扫描事件。

另一方面,本发明还提供了一种二维码的生成方法,在客户端一侧,该生成方法包括:发送短地址请求至服务端,其中,短地址请求传递的参数包括长地址,短地址请求的请求地址中的域名为多域名中的一个,多域名均指向服务端的地址,服务端用于将请求地址中的域名与长地址对应的短字符串拼接形成短地址;接收服务端返回的短地址;以及根据短地址生成二维码。

通过本发明,提出了一种二维码的生成方法,预先配置多域名指向同一服务端的地址,该服务端为生成方法的执行主体,也即响应客户端发送的短地址请求的服务端,在该方法中,客户端将待进行二维码转化的长地址通过短地址请求传递至服务端,以向服务端获取长地址对应的短地址,该短地址请求的请求地址中的域名为多域名中的一个。服务端接收客户端发送的短地址请求,提取请求地址中的域名,确定长地址对应的短字符串,然后将请求地址中的域名与短字符串拼接为短地址发送至客户端,指示客户端根据短地址生成二维码,从而生成二维码的短地址域名可随短地址请求的请求地址中的域名改变而改变,实现了二维码短地址域名的不唯一。

基于上述二维码的生成方法,本发明还提供了一种二维码扫描事件的响应方法,上述生成方法生成的二维码被某一客户端扫描后,服务端会接收到请求,该请求为该客户端发送的要求响应扫描事件的请求,其中,请求的请求地址为客户端扫描二维码后识别到的短地址,短地址中的域名为多域名中的一个,多域名均指向该接收请求的服务端。服务端在接收到该请求后,提取短地址中的域名后的短字符串,然后查找短字符串对应的长地址,最后根据查找到的长地址响应扫描事件。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是根据本发明第一实施例的二维码的生成方法的流程图;

图2是根据本发明第一实施例的二维码的生成方法中服务端架构图;

图3是根据本发明第二实施例的二维码的生成方法的流程图;

图4是根据本发明第三实施例的二维码的生成方法的流程图;

图5是根据本发明第四实施例的二维码扫描事件的响应方法的流程图;

图6是根据本发明第五实施例的二维码扫描事件的响应方法的流程图;

图7是根据本发明第六实施例的二维码扫描事件的响应方法的流程图;

图8是根据本发明第七实施例的二维码的生成装置的框图;

图9是根据本发明第八实施例的二维码扫描事件的响应装置的框图;

图10是根据本发明第九实施例的二维码的生成系统的工作流程图;以及

图11是根据本发明第十实施例的二维码扫描事件的响应系统的工作流程图。

具体实施方式

下面结合附图和具体实施方式对本发明做进一步说明。需要指出的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

实施例一

本发明实施例一从服务端的角度描述了一种二维码的生成方法,具体为服务端响应客户端的短地址请求,将长地址转换为短地址发送至客户端的过程。在该实施例中,预先配置多域名指向同一服务端的地址,从而客户端可通过访问该多域名中的任一域名访问到该服务端。具体地,如图1所示,该实施例的生成方法包括以下的步骤s102至步骤s108,各个步骤依次详细说明如下。

步骤s102:接收客户端发送的短地址请求。

该短地址请求传递的参数包括长地址,将长地址发送至服务端,以获取该长地址对应的短地址的请求,其中,该短地址请求的请求地址中的域名为多域名中的一个,并且预先配置多域名均指向该服务端的地址,因而,该服务端能够接收到该短地址请求。

例如,预先配置域名domain1、domain2、domainx、domainy均指向服务端的地址,在该步骤s102中,可接收到客户端1发送的请求地址为http://domain1/shortlink的短地址请求,可接收到客户端2发送的请求地址为http://domain2/shortlink的短地址请求,可接收到客户端3发送的请求地址为http://domainx/shortlink的第一短地址请求,可接收到客户端3发送的请求地址为http://domainy/shortlink的第二短地址请求。

优选地,如图2所示,服务端设置有多个服务端节点,其中,多个服务端节点中包括用于分发请求的请求分发节点,和用于响应请求的请求响应节点,各个节点对应一台web服务器,实现分布式负载均衡。在接收到请求时,首先由请求分发节点进行请求分发,将请求分发至某一请求响应节点。每个请求响应节点接收到请求后判断本节点下的服务是否可用。如果发现本节点下服务不可用时则将请求导向到另一请求响应节点。如果可用,本节点执行下述步骤s104至步骤s108。采用该分布式负载均衡的方法,能够提高响应短地址请求的稳定性和可靠性,可避免单点故障导致客户端请求失败。

步骤s104:提取请求地址中的域名。

服务端在接收到短地址请求后,首先提取请求地址中的域名,例如将上述请求地址http://domain1/shortlink中的域名domain1提取出来。

步骤s106:确定长地址对应的短字符串。

在该步骤中,以长地址为输入参数,采用预设计算方法进行计算,得到的计算结果为短字符串。

例如采用以下的计算方法:

①将长地址用md5算法生成32位签名串,分为4段,每段8个字符;

②对这4段循环处理,取每段的8个字符,将其看成16进制字符串与0x3fffffff(30位1)的位与操作,超过30位的忽略处理;

③将每段得到的30位分成6段,每5位的数字作为字母表的索引取得特定字符,依次进行,获得6位字符串,获得4个6位串;

④获取4个6位串中的任意一个作为长地址对应的短字符串。

或者,采用唯一字符串的构造方法进行字符串构造,构造出的唯一字符串作为短字符串,其中,唯一字符串构造方法与长地址无关。

唯一字符串的构造方法可以为参考时间戳的方法,具体为以0-9、a-z、a-z随机取n个字符,再拼接时间戳构造字符串,作为长地址对应的短字符串,例如:q2h89a3k+时间戳=q2h89a3k1456131137,q2h89a3k1456131137就是短字符串。

又如,调用java中生成uuid(universallyuniqueidentifier,通用唯一识别码)的方法生成唯一字符串作为与长地址对应的短字符串,例如,生成字符串7e558f46-03de-488c-affa-5877a740f135,进一步优选地,再将此字符串中的“-”去掉,得到如7e558f4603de488caffa5877a740f135的字符串,此字符串就是短字符串。

其中,采用调用java中生成uuid的方法,在生成短字符串时简单易实现且速度快,效率高;同时,基于该方法唯一性的特点,使得得到的短字符串不会重复,保证短地址的唯一性;第三,该方法所生成的字符串不长,保证生成二维码的图案简单,易于扫码识别,识别率高。

优选地,在确定长地址对应的短字符串后,将长地址与其对应的短字符串存储至服务端的数据库和/或缓存,以便在二维码识别过程中方便地通过短字符串查找到长地址。

如图2所示,在某一请求响应节点确定长地址对应的短字符串后,将长地址与其对应的短字符串存储至服务端的数据库和/或缓存。

例如,将某促销广告的显示页面的长地址采用该实施例的方法转换为短地址,再根据这一短地址生成二维码。当有大量用户扫描该二维码,服务端需要大量的通过短地址中的短字符串反查长地址。如果将长地址与其对应的短字符串存储至数据库时,庞大用户量下反查原长地址必然给数据库造成压力。特别是在用户量激增的情况下,服务端需大量访问数据库查找相应的长地址,此时数据库的压力巨大,由此势必会增加查询时间,导致反馈结果相应速度变慢,影响用户体验。如果将长地址与其对应的短字符串存储至缓存时,能够减少数据库访问,降低对数据库的压力,提高用户交互的响应速度。

步骤s108:将请求地址中的域名与短字符串拼接为短地址发送至客户端,指示客户端根据短地址生成二维码。

例如,将域名domain1与上述短字符串7e558f4603de488caffa5877a740f135拼接为短地址http://domain1/7e558f4603de488caffa5877a740f135发送给客户端1,客户端1据此短地址生成二维码。

具体地,请求地址中的域名可预先根据需求进行配置,一种配置方式为域名与客户端的信息相绑定,客户端的信息包括生产客户端的厂商、客户端的终端类型、客户端所处的地理区域、客户端的用户等级等等。从而服务端接收到的每个短地址请求的请求地址中的域名均为预定的、与发送该短地址请求的客户端的信息相对应的域名,相应地,服务端生成的短地址中的域名也即与客户端的信息对应,客户端生成的二维码中的域名也与客户端的信息对应起来,从而能够达到通过二维码来区分客户端的目的。例如,为不同厂商生产的客户端配置不同的域名,能够通过二维码来区分客户端属于哪一厂商;为不同终端类型的客户端配置不同的域名,能够通过二维码来区分客户端属于哪一终端类型;为不同区域的客户端配置不同的域名,能够通过二维码来区分客户端属于哪一区域;为不同用户等级的客户端配置不同的域名,能够通过二维码来区分客户端属于哪一用户等级,等等。

具体例如,某机顶盒a对应域名domaina,某机顶盒b对应域名domainb,某视频业务提供方的访问地址为长地址x。机顶盒a创建短地址请求发送至服务端,服务端将长地址x转换为短字符串y1,然后拼接为短地址http://domaina/y1用于机顶盒a生成二维码;机顶盒b创建短地址请求发送至服务端,服务端将长地址x转换为短字符串y2,然后拼接为短地址http://domainb/y2用于机顶盒b生成二维码,y1与y2可相同也可不同。

当上述机顶盒a和机顶盒b生成的二维码被扫描时,服务端在接收到的要求响应扫描事件的请求后,能够从请求地址中的域名识别到是哪个机顶盒的二维码被扫描。

另一种配置方式为域名与二维码展示的时空要求相绑定,其中,二维码展示的时空要求具体是指展示二维码的空间不同和/或展示二维码的时间不同,例如,二维码的展示的时空要求包括:

时空要求a、在a空间的所有时间段展示二维码;

时空要求b、在b空间的第一时间段展示二维码;

时空要求c、在c空间和d空间的第二时间段展示二维码。

具体地,多域名中的每一域名绑定一种二维码展示的时空要求,从而服务端接收到的每个短地址请求的请求地址中的域名,均为根据二维码展示的时空要求从多域名中选定的一个域名,相应地,服务端生成的短地址中的域名也即与二维码展示的时空要求对应,客户端生成的二维码中的域名也与二维码展示的时空要求对应起来,从而能够达到为不同的二维码展示的时空要求生成相应的二维码的目的。

例如,某客户端需要生成用于不同时空要求的二维码,时空要求a对应域名domaina,时空要求b对应域名domainb,某视频业务提供方的访问地址为长地址x。该客户端在生成用于时空要求a的二维码时,创建第一短地址请求发送至服务端,服务端将长地址x转换为短字符串y1,然后拼接为短地址http://domaina/y1,以使客户端生成用于时空要求a的二维码;该客户端在生成用于时空要求b的二维码时,创建第二短地址请求发送至服务端,服务端将长地址x转换为短字符串y2,然后拼接为短地址http://domainb/y2,以使客户端生成用于时空要求b的二维码,y1与y2可相同也可不同。

当上述客户端生成的二维码被扫描时,服务端在接收到的要求响应扫描事件的请求后,能够从请求地址中的域名识别到是哪个时空场景的二维码被扫描。

采用该实施例的二维码生成方法,生成二维码的短地址域名可随短地址请求的请求地址中的域名改变而改变,实现了二维码短地址域名的不唯一,达到了二维码短地址域名灵活性,例如,在对短地址域名有所要求时,可按照要求来预先配置请求地址中的域名满足要求;在对短地址域名有所限制时,可在设置请求地址中的域名时,通过其他不受限的域名替代受限域名满足要求。

实施例二

本发明实施例二从客户端的角度描述了一种二维码的生成方法,具体为客户端创建短地址请求发送至服务端,接收服务端发送的对应于长地址的短地址,再根据短地址生成二维码的过程。在该实施例中,预先配置多域名指向同一服务端的地址,从而客户端可通过访问该多域名中的任一域名访问到该服务端。具体地,如图3所示,该实施例的生成方法包括以下的步骤s202至步骤s210,各个步骤依次详细说明如下。

步骤s202:确定待访问的域名。

客户端欲将某长地址生成二维码时,需要发送短地址请求至服务端,以从服务端获取到用于生成二维码的短地址。

在发送短地址请求之前,要确定请求的请求地址;在确定请求地址时,需要确定请求地址中的域名,也即待访问的域名。

如上述实施例一种描述的,可预先根据需求进行配置,一种配置方式为域名与客户端相绑定,具体为待访问的域名预先分配到一个客户端,每个客户端对应一个域名,该域名为多域名中的一个。

另一种配置方式为域名与二维码展示的时空要求相绑定,具体为具体为待访问的域名预先分配到一个二维码展示的时空要求,每个二维码展示的时空要求对应一个域名,该域名为多域名中的一个。

步骤s204:创建短地址请求。

在创建短地址请求时,请求地址中的域名为上述步骤中确定的域名;请求内容为待进行二维码转换的长地址。

步骤s206:发送短地址请求至服务端。

优选地,短地址请求可以将长地址以post或get的方式发送至服务端,服务端以上述实施例一的方式进行长地址向短地址的转换,转换后将短地址返回至客户端。

步骤s208:接收服务端发送的与长地址相对应的短地址。

步骤s210:根据接收到的短地址生成二维码。

采用该实施例的二维码生成方法,生成二维码的短地址域名可随短地址请求的请求地址中的域名改变而改变,实现了二维码短地址域名的不唯一,达到了二维码短地址域名的灵活性。

实施例三

该实施例三从系统的角度,描述了一种二维码的生成方法,具体为通过客户端与服务端之间的交互完成二维码的生成过程。在该实施例中,预先配置多域名均指向该服务端的地址,从而客户端可通过访问该多域名中的任一域名访问该服务端,以实现长地址转换为短地址。具体地,如图4所示,该实施例的生成方法包括以下的步骤s302至步骤s314,各个步骤依次详细说明如下。

步骤s302:客户端确定待访问的域名后,创建短地址请求。

可选地,可预先为客户端分配不同的域名,客户端被分配的域名即为确定的待访问的域名。例如,为客户端1分配域名domain1,为客户端2分配域名domain2,则客户端1创建的短地址请求的请求地址中的域名为domain1,客户端2创建的短地址请求的请求地址中的域名为domain2。采用该种策略,在二维码扫描时,通过域名即可确定是哪个客户端生成的二维码。

可选地,可预先为二维码展示的时空要求分配不同的域名,客户端根据二维码展示的时空要求选择一个域名,即为待访问的域名。例如,为显示在不同时间段的二维码分配不同的域名,其中,第一时间段分配域名domain1,第二时间段分配域名domain2,客户端在生成用于显示与第一时间段的二维码时,创建的短地址请求的请求地址中的域名为domain1;客户端在生成用于显示与第二时间段的二维码时,创建的短地址请求的请求地址中的域名为domain2。采用该种策略,在二维码扫描时,通过域名即可确定客户端生成的二维码在哪个时间段被扫描。

无论以上述哪种方式确定待访问的域名,在创建短地址请求时,根据确定的域名进一步确定短地址请求的请求地址,例如,确定待访问的域名为domainx,则请求地址为http://domainx/shortlink。

在确定请求地址后,请求传递的参数为待进行二维码转换的长地址,也即,通过该短地址请求将长地址发送至服务端,例如,某长地址为:“http://xyz.abc.cn/?spid=20120629&epgid=100895&version=v1.0&uid=103757151&oemid=123&hid=5cc6d0cbde&app_version=lmnplay_gen_2.4&issendxmpp=1&pid=140126&ptype=300&title=817test&price=1&responseformat=xml&datetime=1439459658988&ordertype=2”,具体可通过post或get的方式将长地址发送至服务端。通过该短地址请求,将长地址发送至服务端,以获取该长地址对应的短地址。

步骤s304:客户端发送短地址请求至服务端。

步骤s306:服务端接收客户端发送的短地址请求。

由于多域名均指向服务端的地址,因而,服务端可以收到访问该多域名中任一域名地址的请求。

优选地,服务端设置有多个服务端节点,各个节点对应一台web服务器,实现分布式负载均衡。其中,多个服务端节点中包括用于分发请求的请求分发节点,和用于响应请求的请求响应节点,请求分发节点在接收到请求时,首先进行请求分发,将请求分发至某一请求响应节点。每个请求响应节点接收到请求后判断本节点下的服务是否可用。如果发现本节点下服务不可用时则将请求导向到另一请求响应节点。如果可用,本节点执行以下的步骤s308至步骤s312。采用该分布式负载均衡的方法,能够提高响应短地址请求的稳定性和可靠性,可避免单点故障导致客户端请求失败。

步骤s308:服务端提取短地址请求的请求地址中的域名。

例如,提取短地址请求的请求地址为http://domainx/shortlink,提取该请求地址中的域名domainx。

步骤s310:服务端确定长地址对应的短字符串。

该步骤与实施例一中的步骤s106相同,此处不再赘述。

步骤s312:服务端将请求地址中的域名与短字符串拼接为短地址发送至客户端。

步骤s314:客户端接收到短地址,并根据接收到的短地址生成二维码。

采用该实施例的二维码生成方法,生成二维码的短地址域名可随短地址请求的请求地址中的域名改变而改变,实现了二维码短地址域名的不唯一,达到了二维码短地址域名灵活性。

实施例四

本发明实施例四从服务端的角度描述了一种二维码扫描事件的响应方法,具体为服务端响应客户端要求响应扫描事件的请求,查找二维码短地址对应的长地址,再根据长地址响应扫描事件的过程。在该实施例中,预先配置多域名均指向该服务端的地址,从而只要客户端扫描二维码后,识别到的短地址中的域名为该多域名中的域名,即可访问到该服务端。

需要说明的是,本申请中在描述二维码生成过程中提到的客户端,是指生成二维码的客户端,在描述二维码扫描事件的响应方法中提到的客户端,是指扫描二维码的客户端,二者相互独立。

具体地,如图5所示,该实施例的生成方法包括以下的步骤s402至步骤s408,各个步骤依次详细说明如下。

步骤s402:接收客户端发送的要求响应扫描事件的请求。

该请求的请求地址为客户端扫描二维码后识别到的短地址,短地址中的域名为多域名中的一个。

在实际使用过程中,某客户端扫描二维码后,发送要求响应扫描事件的请求至服务端。

优选地,服务端设置有多个服务端节点,各个节点对应一台web服务器,实现分布式负载均衡。其中,多个服务端节点中包括用于分发请求的请求分发节点,和用于响应请求的请求响应节点,请求分发节点在接收到请求时,首先进行请求分发,将请求分发至某一请求响应节点。每个请求响应节点接收到请求后判断本节点下的服务是否可用。如果发现本节点下服务不可用时则将请求导向到另一请求响应节点。如果可用,本节点执行以下的步骤s404至步骤s408。采用该分布式负载均衡的方法,能够提高响应短地址请求的稳定性和可靠性,可避免单点故障导致客户端请求失败。

步骤s404:提取短地址中的域名和域名后的短字符串。

例如,接收到请求的请求地址,也即短地址,为上述实施例一中的短地址http://domaina/y1,提取到域名domaina和短字符串y1。

优选地,服务端具有根据请求地址中的域名对接收到的请求进行分类统计的功能,将每一个域名绑定一个分类统计的类别,从而能够根据请求地址中的域名对接收到的请求进行分类统计。具体地,在提取短地址中的域名后,首先确定短地址中的域名在分类统计中所属的类别,然后更新类别对应的统计结果。

例如,将每一个域名绑定一个产品销售统计项,针对同一个长地址,在不同产品上显示域名不同的二维码,通过该种优选方式,在实现提供长地址对应的服务的同时,还能同时在服务端统计到不同产品的销售情况。

又如,将每一个域名绑定一个区域用户扫描数量统计项,针对同一个长地址,在不同地区显示域名不同的二维码,通过该种优选方式,在实现提供长地址对应的服务的同时,还能同时在服务端统计到不同区域用户参与扫描数量的情况。

再如,将每一个域名绑定一个时间段用户扫描数量统计项,针对同一个长地址,在不同时间段显示域名不同的二维码,通过该种优选方式,在实现提供长地址对应的服务的同时,还能同时在服务端统计到不同时间段内用户参与扫描数量的情况。

步骤s406:查找短字符串对应的长地址。

在实现该步骤时,首先在缓存中进行查找,仅当缓存中查找失败时再在数据库中查找,从而减少访问数据库的次数,减小数据库压力。

步骤s408:根据查找到的长地址响应扫描事件。

在该步骤中,可将请求重定向至长地址作为该扫描事件的响应。

优选地,也可在服务端预置域名和响应规则的对应关系,该对应关系可根据实际需求进行配置。在该步骤中,首先在配置好的对应关系中查找与短地址中的域名相对应的响应规则,将长地址按照查找到的响应规则处理后,再进行请求的重定向,实现了对扫描事件的个性化响应。

其中,响应规则具体为将长地址中的通用参数修改为指定的个性化参数,不同的响应规则对应不同的个性化参数,则将长地址按照查找到的响应规则处理的步骤具体包括:将长地址中的通用参数修改为响应规则对应的个性化参数,最终使得同一长地址转换为域名不同的二维码被扫描时,得到不同的反馈。

例如,访问该长地址时可以到达某视频网页,该长地址被转换为短地址http://domaindx/dzfc1进而生成二维码张贴于大学校园,该长地址同时也被转换为短地址http://domainxzl/dzfc2进而生成二维码张贴于写字楼。在大学校园的二维码被扫描后,服务端提取短地址http://domaindx/dzfc1中的域名domaindx,对长地址的通用参数按照域名domaindx对应的响应规则进行修改,使得该视频网页在显示时,广告内容为培训、留学等资讯,首页视频缩略图为适于大学生的电影、综艺节目的缩略图。在写字楼的二维码被扫描后,服务端提取短地址http://domainxzl/dzfc2中的域名domainxzl,对长地址的通用参数按照域名domainxzl对应的响应规则进行修改,使得该视频网页在显示时,广告内容为求职信息,首页视频缩略图为适于白领的电影、综艺节目的缩略图。

响应规则也可以为将长地址替换为预设长地址,不同的响应规则对应不同的预设长地址,则将长地址按照查找到的响应规则处理的步骤具体包括:将长地址替换为响应规则对应的预设长地址,最终使得同一长地址转换为域名不同的二维码被扫描时,也能得到不同的反馈。

采用该实施例的二维码扫描事件的响应方法,能够响应以本申请提供的二维码生成方法生成的二维码的扫描事件,进一步地,可根据域名的不同设置不同的业务处理。

实施例五

本发明实施例五从客户端的角度描述了一种二维码扫描事件的响应方法,具体为客户端响应用户的扫描操作,创建要求响应扫描事件的请求发送至服务端,以得到服务端对该扫描事件响应的过程。在该实施例中,多域名均指向该服务端的地址,从而只要客户端扫描二维码后,识别到的短地址中的域名为该多域名中的域名,即可访问到该服务端。具体地,如图6所示,该实施例的响应方法包括以下的步骤s502至步骤s504,各个步骤依次详细说明如下。

步骤s502:响应用户的扫描操作,对二维码进行扫描,识别到该二维码对应的短地址。

用户操作客户端对二维码进行扫描,客户端响应扫描操作,扫描二维码进行识别。

步骤s504:以识别到的短地址为请求地址,向服务端发送要求响应扫描事件的请求。

服务端以上述实施例四的方式对要求响应扫描事件的请求进行响应。

实施例六

该实施例六从系统的角度,描述了一种二维码扫描事件的响应方法,具体为通过客户端与服务端之间的交互完成二维码扫描事件的响应过程。在该实施例中,多域名均指向该服务端的地址,被扫描的二维码是由短地址转换来的,短地址中的域名为多域名中的一个域名,因而,客户端扫描二维码,也即客户端访问短地址时,服务端均会接收到请求并进行响应。具体地,如图7所示,该实施例的响应方法包括以下的步骤s602至步骤s612,各个步骤依次详细说明如下。

步骤s602:客户端扫描二维码进行识别,得到该二维码对应的短地址。

步骤s604:客户端以该短地址为请求地址,向服务端发送要求响应扫描事件的请求。

步骤s606:服务端接收客户端发送的要求响应扫描事件的请求。

步骤s608:服务端获取该请求的请求地址中的域名和域名后的短字符串。

步骤s610:服务端从缓存中查找该短字符串对应的长地址。

仅当缓存中没有找到相应的长地址(比如,缓存失效时),再在数据库中进行查找。

步骤s612:服务端根据查找到的长地址和请求地址中的域名响应扫描事件。

具体地,可在服务端设置域名和响应规则的对应关系,不同域名对应不同的响应规则,那么在该步骤s612中,服务端首先确定短地址中的域名所绑定的响应规则,将长地址按照查找到的响应规则处理后,再进行请求的重定向,实现了对扫描事件的个性化响应。

实施例七

与实施例一相对应,该实施例提供了一种二维码的生成装置,该生成装置位于服务端一侧,同时预先配置多域名均指向该服务端的地址,如图8所示,该生成装置包括接收模块702、提取模块704、确定模块706和发送模块708。

其中,接收模块702用于接收客户端发送的短地址请求,其中,短地址请求用于发送长地址至服务端,以获取长地址对应的短地址,短地址请求的请求地址中的域名为多域名中的一个。提取模块704用于提取请求地址中的域名。确定模块706用于确定长地址对应的短字符串。发送模块708用于将请求地址中的域名与短字符串拼接为短地址发送至客户端,指示客户端根据短地址生成二维码。

采用该实施例的二维码生成装置,生成二维码的短地址域名可随短地址请求的请求地址中的域名改变而改变,实现了二维码短地址域名的不唯一,达到了二维码短地址域名灵活性。

优选地,确定模块706具体执行以下步骤:以长地址为输入参数,采用预设计算方法进行计算,得到的计算结果为短字符串;或采用唯一字符串的构造方法进行字符串构造,构造出的唯一字符串作为短字符串,其中,唯一字符串构造方法与长地址无关。

优选地,确定模块706在采用唯一字符串的构造方法构造出短字符串的时,调用java中生成通用唯一识别码的方法生成唯一字符串作为与长地址对应的短字符串。

优选地,该生成装置还包括存储模块,用于存储长地址与其对应的短字符串至服务端的数据库和/或缓存。

优选地,请求地址中的域名为预先配置的、与客户端相绑定的域名;或者请求地址中的域名为预先配置的、与二维码展示的时空要求相绑定的域名

优选地,服务端包括请求分发节点和多个请求响应节点,请求分发节点包括接收模块702,该接收模块702还用于在接收客户端发送的短地址请求之后,将请求分发到多个请求响应节点中的一个,请求响应节点包括提取模块704、确定模块706、发送模块708和判断模块,判断模块用于在接收到请求后判断本节点下的服务是否可用,如果不可用,将请求导向到另一请求响应节点,本节点的提取模块704、确定模块706和发送模块708均不执行任何步骤;如果可用,本节点提取模块704、确定模块706和发送模块708执行相应的步骤。

实施例八

与实施例四相对应,该实施例提供了一种二维码扫描事件的响应装置,该响应装置位于服务端一侧,同时预先配置多域名均指向该服务端的地址。如图9所示,该响应装置包括接收模块802、提取模块804、查找模块806和响应模块808。

其中,接收模块802用于接收客户端发送的要求响应扫描事件的请求,其中,请求的请求地址为客户端扫描二维码后识别到的短地址,短地址中的域名为多域名中的一个。提取模块804用于提取短地址中的域名后的短字符串。查找模块806用于查找短字符串对应的长地址。响应模块808用于根据查找到的长地址响应扫描事件。

采用该实施例的二维码扫描事件的响应装置,能够响应以本申请提供的二维码生成方法生成的二维码的扫描事件。

优选地,响应模块808具体执行以下步骤:将请求重定向至长地址。

优选地,在服务端预置域名和响应规则的对应关系,不同域名对应不同的响应规则,提取模块804还用于提取短地址中的域名,响应模块808也可执行以下步骤:在对应关系中查找短地址中的域名对应的响应规则;按照查找到的响应规则处理长地址;以及将请求重定向至处理后的长地址。

其中,进一步优选地,按照查找到的响应规则处理长地址时,可将长地址中的通用参数修改为响应规则中指定的个性化参数。

优选地,服务端具有根据请求地址中的域名对接收到的请求进行分类统计的功能,响应装置还包括统计模块,用于在提取模块804提取短地址中的域名后,确定短地址中的域名在分类统计中所属的类别;以及更新类别对应的统计结果。

优选地,查找模块806具体执行以下步骤:在缓存中查找短字符串对应的长地址;以及如果查找失败,在数据库中查找短字符串对应的长地址。

优选地,服务端包括请求分发节点和多个请求响应节点,请求分发节点包括接收模块702,该接收模块702还用于在接收客户端发送的要求响应扫描事件的请求之后,将请求分发到多个请求响应节点中的一个,请求响应节点包括提取模块804、查找模块806、响应模块808和判断模块,判断模块用于在接收到请求后判断本节点下的服务是否可用,如果不可用,将请求导向到另一请求响应节点,本节点的提取模块804、查找模块806和响应模块808均不执行任何步骤;如果可用,本节点的提取模块804、查找模块806和响应模块808执行相应的步骤。

实施例九

该实施例提供了一种二维码的生成系统,以将长地址转换为短地址后生成二维码。该系统包括客户端和服务端两部分,其中,预先配置多域名均指向该服务端的地址,客户端可通过多域名中的任意域名访问到该服务端。在进行二维码生成时,客户端用于创建短地址请求,以发送长地址至服务端,并接收服务端发送的长地址对应的短地址,并根据短地址生成二维码,其中,短地址请求的请求地址中的域名为多域名中的一个。服务端用于提取请求地址中的域名,并确定长地址对应的短字符串,最后将请求地址中的域名与短字符串拼接为短地址发送至客户端。具体地,该系统各部分的工作过程见上述实施例中有关描述。在本实施例中,该系统工作流程如下文所述。

如图10所示,服务端接收到客户端发送的请求后,首先提取请求地址的域名。例如在http://domain1/shortlink或http://domain2/shortlink。将请求地址中的域名提取出来,如domain1和domain2。

然后将长地址转换成短字符串。其方法为直接调用java中生成uuid的方法生成唯一字符串,如7e558f46-03de-488c-affa-5877a740f135,将此字符串中的“-”去掉,得到如7e558f4603de488caffa5877a740f135的字符串,此字符串就是短字符串,即key。此转换方法简单易实现且速度快。

然后将key与长地址放入数据库及缓存,最后将提取的域名拼接key形成短地址,用此短地址生成二维码。生成二维码如:http://domain1/7e558f4603de488caffa5877a740f135。至此,长地址转短地址的工作就结束了。服务端将长地址返回至客户端后,由客户端生成二维码。

对于承载了不同域名短地址的二维码来说,不同厂商或不同的应用场景可分配不同的二维码。例如,某品牌a机顶盒携带http://domain1/地址的二维码,品牌b机顶盒携带http://domain2/地址的二维码,大学校园张贴http://domain3/地址的二维码,等等。当用户扫描二维码,服务端接收到请求,通过请求地址的域名便可获知什么样的人群扫描了二维码。服务端对于不同的地址请求可做不同的业务处理。对不同来源的请求进行分类统计。在大数据时代,通过此统计可分析出哪种品牌的机顶盒销售情况如何,或来自哪个地区的用户参与扫码的数量最多等等。

另外,在某种情况下,会要求二维码承载的地址中不允许出现某个域名,例如不允许出现“xyzdomain”的域名字样。这样应用域名替换的方法可以将域名替换为其他名称,例如“abcdomain”,从而既满足需求又不需要更改业务流程。

综上所述,以上优点是单一域名短地址二维码所不具备的。单一域名二维码无法从请求地址中直接区分扫码来源,且无法满足对域名地址有所限制的同时仍可提供相应服务的需求。

在上述过程中,对于服务端来讲,庞大的用户访问量带来的是巨大的压力。为保障服务的稳定性和可靠性,优选地,在该实施例中,采用分布式负载均衡策略。也即,将请求分发到各个服务端节点,每个节点对应一台web服务,实现分布式负载均衡。每个节点接收到请求后判断本节点下的服务是否可用。如果发现本节点下服务不可用时则将请求导向到另一台可用的服务器。此策略可避免单点故障导致客户端请求失败。

实施例十

该实施例提供了一种二维码扫描事件的响应系统,以响应用户通过客户端扫描二维码的事件。该系统包括客户端和服务端两部分,其中,预先配置多域名均指向该服务端的地址,客户端可通过多域名中的任意域名访问到服务端。客户端用于响应用户的二维码扫描操作,创建要求响应扫描事件的请求,并将请求发送至服务端,其中,请求的请求地址为客户端扫描二维码后识别到的短地址,短地址中的域名为多域名中的一个。服务端用于获取短地址中的域名和域名后的短字符串,并查找短字符串对应的长地址,最后根据查找到的长地址响应扫描事件。具体地,该系统各部分的工作过程见上述实施例中有关描述。在本实施例中,该系统工作流程如下文所述。

在长地址例如http://domain/xyz...生成通过某种转换生成短字符串,例如abcd,将此短字符串与长地址存入数据库,同时以key-value的形式放入缓存中。将短地址域名拼接短字符串形成短地址如http://domain/abcd生成二维码。如图11所示,客户端扫描此二维码,访问短地址,服务端接收到请求后,首先用域名后的短字符串在缓存中查找相对应的value,也就是长地址,获取到后直接进行跳转。如果在缓存中没有找到相应的长地址(比如,缓存失效时),再在数据库中进行查找。这样就大大减少了对数据库的访问。

从以上各实施例的描述中,可以看出,本发明实施例达到了如下的技术效果:

现有技术方案中生成的短地址域名为单一域名。在对短地址域名有所要求或限制的情况下,或需要区分请求来源的时候现有技术方案则不满足要求。本僧请采用多域名动态替换短地址中的域名,可对不同来源的请求生成不同域名的短地址二维码。客户端扫描二维码后,服务端可根据不同域名地址处理不同的业务逻辑。应用本申请后对数据访问来源的统计也变得灵活。

进一步地,庞大用户量下对单服务器造成负载压力,且出现单点故障造成服务瘫痪。现有技术在生成二维码和扫描二维码的方案中,未考虑服务器负载均衡及单点故障的处理。本申请采用分布式部署,配置请求分发方案优化负载均衡。对单点故障做请求分配。当某一web服务由于某种原因停止服务后,请求自动分发到另一台正常运行的服务器,保障服务的正常运行。

进一步地,庞大用户量下短地址反查原长地址给数据库造成的压力。在用户量激增的情况下,服务器需大量访问数据库查找相应的长地址,此时数据库的压力巨大,在数据量庞大的情况下势必会增加查询时间,导致反馈结果相应速度变慢,影响用户体验。本申请采用缓存机制减少数据库访问,降低对数据库的压力,提高用户交互的响应速度。

需要说明的是,上述装置或系统实施例属于优选实施例,所涉及的模块并不一定是本申请所必须的。

本说明书中的各个实施例从不同角度对本申请进行了描述,各个实施例之间相同相似的部分互相参见即可。对于本申请的装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1