一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

问卷答题管理方法、装置、计算机设备和存储介质与流程

2021-11-15 18:15:00 来源:中国专利 TAG:


1.本技术涉及数据分析技术领域,尤其涉及一种问卷答题管理方法、装置、计算机设备和存储介质。


背景技术:

2.网络问卷调查即通过网络邀请用户参与回答问卷以获取市场信息的一种调查方式。但是现有技术中的问卷调查需要用户全部完成后才能提交,如果中途退出回答,下次重新回答问卷调查时则需要用户从头开始回答,繁琐重复的交互流程给用户造成了一定的不便且容易消磨用户的答题耐心,在用户体验和答题效率质量上面都起到了负面影响。
3.针对用户回答问卷调查时中途退出后重新回答需要从头开始答题的问题,现有技术中通常是将答题数据缓存在本地端,这种方式虽然能够避免重复答题,但是用户只能局限在同一个设备上继续答题才能调出缓存答题进度。如果用户换一个设备则需要重新填写同一个问卷调查,不能实现无重复的继续答题的目的。
4.现有技术中还有一种方式是将答题数据缓存到服务器端,但是服务器端通常缓存的都是一些固化的数据,比如缓存三元组数据用户id、问卷id、问卷已答进度,它在服务器端的数据表中对应着三个字段,后续如果需求更新改变,需要缓存更多的信息,比如新增问卷类型数据,那么服务端就需要修改数据表增加该字段,这样直接导致服务端在需要更新的时候需要不断地做版本兼容。


技术实现要素:

5.为了解决现有技术中用户只能在同一个本地端才能避免重复填写问卷调查,或,由于用户的问卷调查数据的多样性导致服务器需要不断做版本兼容的技术问题。本技术提供了一种问卷答题管理方法、装置、计算机设备和存储介质,其主要目的在于避免用户再次重头回答问卷题目的困扰、节省用户时间,以及实现服务器的高度兼容,以方便缓存各种不同的问卷数据。
6.为实现上述目的,本技术提供了一种问卷答题管理方法,该方法包括:
7.接收用户通过客户端发送的答题申请请求,其中,答题申请请求包括用户唯一标识和待答问卷的问卷属性;
8.获取为待生成的身份凭证分配的第一唯一标识;
9.基于第一预设规则,根据用户唯一标识、待答问卷的问卷属性以及第一唯一标识生成与答题申请请求对应的身份凭证;
10.将身份凭证和待答问卷的问卷数据返回至客户端,其中,问卷数据包括至少一个待回答的题目;
11.接收客户端发送的答题结果上传请求,答题结果上传请求为客户端每监听到用户所答的一个题目的回答数据后生成的,且,答题结果上传请求携带身份凭证、题目id和对应的回答数据;
12.解析答题结果上传请求,以获取并保存与用户对应的问卷数据中已答题目的回答数据。
13.此外,为实现上述目的,本技术还提供了一种问卷答题管理装置,该装置包括:
14.第一接收模块,用于接收用户通过客户端发送的答题申请请求,其中,答题申请请求包括用户唯一标识和待答问卷的问卷属性;
15.标识生成模块,用于获取为待生成的身份凭证分配的第一唯一标识;
16.凭证生成模块,用于基于第一预设规则,根据用户唯一标识、待答问卷的问卷属性以及第一唯一标识生成与答题申请请求对应的身份凭证;
17.发送模块,用于将身份凭证和待答问卷的问卷数据返回至客户端,其中,问卷数据包括至少一个待回答的题目;
18.第二接收模块,用于接收客户端发送的答题结果上传请求,答题结果上传请求为客户端每监听到用户所答的一个题目的回答数据后生成的,且,答题结果上传请求携带身份凭证、题目id和对应的回答数据;
19.解析保存模块,用于解析答题结果上传请求,以获取并保存与用户对应的问卷数据中已答题目的回答数据。
20.为实现上述目的,本技术还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,处理器执行计算机可读指令时执行如前面任一项的问卷答题管理方法的步骤。
21.为实现上述目的,本技术还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行如前面任一项的问卷答题管理方法的步骤。
22.本技术提出的问卷答题管理方法、装置、计算机设备和存储介质的有益效果为:
23.本技术通过设计身份凭证来唯一定位或绑定用户的问卷答题数据,并根据用户每答完一题返回的答题结果上传请求记录并保存用户的每题答题结果,便于及时记录保存用户中途的答题节点和已回答题目的答案,便于在用户中途退出回答后下次再次回答时直接定位到最近一个未回答题目的节点,或者,同步用户之前已回答的题目的回答结果,便于用户重新查阅之前的回答,自行修改或继续回答下一个未答的题目。有效避免用户再次重头回答问卷题目的困扰、节省用户时间,减少给用户带来的重复答题的麻烦和疲倦,提高用户问卷答题的体验,也有助于用户有更积极的态度继续回答其他题目,提高问卷答题的人性化和有效性。
24.另外,本技术为每个用户回答的每个问卷调查分配一个身份凭证,在服务器端使用用户id、问卷调查的问卷属性即可缓存每个用户的不同问卷调查所对应的问卷数据和回答数据,不论身份凭证版本如何变化,对于服务器端而言,在服务器端始终只需要使用固定的几个字段,不需要修改数据表的字段即可实现对不同版本的身份凭证所对应的问卷数据和回答数据的缓存,实现了高度兼容。
附图说明
25.图1为本技术一实施例中问卷答题管理方法的应用场景图;
26.图2为本技术一实施例中问卷答题管理方法的流程示意图;
27.图3为本技术一实施例中问卷答题管理装置的结构框图;
28.图4为本技术一实施例中计算机设备的内部结构框图。
29.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
30.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
31.本技术提供的问卷答题管理方法,可应用在如图1的应用环境中,其中,其中,终端设备110通过网络与服务器120进行通信。终端设备110可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。服务器120接收用户通过终端设备110发送的答题申请请求;获取待生成的身份凭证的第一唯一标识;基于第一预设规则,根据答题申请请求中的用户唯一标识、待答问卷的问卷属性和待生成的身份凭证的第一唯一标识生成答题申请请求对应的身份凭证;将身份凭证和待答问卷的问卷数据返回至终端设备110;接收终端设备110发送的答题结果上传请求,答题结果上传请求为终端设备110每监听到用户所答的一个题目的回答数据后生成的,且,答题结果上传请求携带身份凭证、题目id和对应的回答数据;解析答题结果上传请求,以获取并保存用户对应的问卷数据中已答题目的回答数据。
32.图2为本技术一实施例中问卷答题管理方法的流程示意图。参考图2,以该方法应用在图1中的服务器为例进行说明。该问卷答题管理方法包括以下步骤s100

s600:
33.s100:接收用户通过客户端发送的答题申请请求,其中,答题申请请求包括用户唯一标识和待答问卷的问卷属性。
34.具体地,答题申请请求是客户端在检测到用户的开始答题指令后生成并发送给服务器的。客户端是安装于终端设备中的应用程序或app或小程序等应用。答题申请请求携带了该用户的用户唯一标识、待答问卷的问卷属性,问卷属性包括所属业务的业务标识、所属场景的场景标识、问卷id中的至少一种,当然还可以包括场景类型等。答题申请请求为一种http请求。
35.更具体地,用户进入客户端上的问卷答题页面,页面上会有开始答题按钮,按下按钮后,客户端就会生成并发送答题申请请求。
36.s200:获取为待生成的身份凭证分配的第一唯一标识。
37.具体地,用户通过客户端可能回答各种不同的问卷调查,且不同用户都可以回答同一种问卷调查。因此,需要为每个用户回答的每一种问卷调查分配一个身份凭证。待生成的身份凭证的第一唯一标识用于区分不同的身份凭证,防止身份凭证重复。
38.s300:基于第一预设规则,根据用户唯一标识、待答问卷的问卷属性以及第一唯一标识生成与答题申请请求对应的身份凭证。
39.具体地,答题申请请求的目的是先为用户申请一个待答问卷对应的身份凭证。身份凭证即为ticket,是为用户签发的登录凭证。一个用户回答一种问卷调查被分配一个对
应的身份凭证,同一个用户回答不同的问卷调查被分配对应不同的身份凭证,根据身份凭证可以跟踪记录该用户对应回答的问卷调查。用户唯一标识用于区分不同的用户。
40.第一预设规则具体可以为一种字段拼接规则,将用户唯一标识、待答问卷的各个问卷属性、待生成的身份凭证的第一唯一标识以及其他填充字段按照预设的字段拼接规则进行拼接,以生成身份凭证。字段拼接规则用于定义拼接所需要的字段和字段之间的拼接顺序。
41.s400:将身份凭证和待答问卷的问卷数据返回至客户端,其中,问卷数据包括至少一个待回答的题目。
42.具体地,服务器端根据待答问卷的问卷属性查找到对应的问卷数据,将问卷数据和身份凭证绑定后返回至客户端。客户端接收并在可视化界面展示问卷数据以供用户查看和答题。
43.s500:接收客户端发送的答题结果上传请求,答题结果上传请求为客户端每监听到用户所答的一个题目的回答数据后生成的,且,答题结果上传请求携带身份凭证、题目id和对应的回答数据。
44.具体地,用户每回答完一个题目后客户端就会生成一个答题结果上传请求,该答题结果上传请求是根据身份凭证、题目id和对应的回答数据生成的。客户端通过答题结果上传请求将该用户每回答完的一个已答题目的回答数据上传至服务器保存。
45.s600:解析答题结果上传请求,以获取并保存与用户对应的问卷数据中已答题目的回答数据。
46.具体地,服务器端从接收到的答题结果上传请求中提取出待校验身份凭证、题目id和对应的回答数据。并根据第一预设规则对待校验身份凭证进行识别验证,如果待校验身份凭证验证成功,则将题目id、对应的回答数据与用户唯一标识、对应的问卷数据进行绑定。更具体地,服务器构建了用户唯一标识、问卷数据和/或问卷属性、问卷数据中已答题目的题目id及对应的回答数据的映射关系。一个用户唯一标识可以对应多个不同问卷数据或问卷数据,一个问卷属性对应一种问卷数据,每个问卷数据对应多个题目id和对应的回答数据。
47.同一个用户回答的同一种问卷的答题结果上传请求携带了相同的身份凭证,因此,可以将每个题目及对应的回答数据与对应的问卷数据关联起来。
48.通过设计身份凭证来唯一定位或绑定用户的每一种问卷数据,同时根据身份凭证可以对用户身份进行验证和识别,防止伪造答题或黑客攻击,并根据用户每答完一题返回的答题结果上传请求记录并保存用户的每题答题结果,便于及时记录保存用户中途的答题节点和已回答题目的答案,便于在用户中途退出回答后下次再次回答时直接定位到最近一个未回答题目的节点,或者,同步用户之前已回答的题目的回答结果,便于用户重新查阅之前的回答,自行修改或继续回答下一个未答的题目。且,用户可以在任意终端设备中登录客户端,都可以实现避免重复答题的效果。有效避免用户再次重头回答问卷题目的困扰、节省用户时间,减少给用户带来的重复答题的麻烦和疲倦,提高用户问卷答题的体验,也有助于用户有更积极的态度继续回答其他题目,提高问卷答题的人性化和有效性。
49.另外,本技术为每个用户回答的每个问卷调查分配一个身份凭证,在服务器端使用用户唯一标识、问卷调查的问卷数据即可对应缓存每个用户的不同问卷调查所对应的问
卷数据以及对应的回答数据,不论身份凭证版本如何变化,对于服务器端而言,在服务器端只需要使用固定的几个字段,不需要修改数据表的字段即可实现对不同版本的身份凭证所对应的问卷数据和回答数据的缓存,实现了服务器对于用户的问卷调查数据管理的高度兼容。
50.在一个实施例中,该方法还包括以下步骤:
51.若接收到客户端在检测到用户的继续答题指令后发送的继续答题申请请求,则从继续答题申请请求中提取出用户将要继续答题的问卷所对应的第一待校验身份凭证;
52.根据对应的第一预设规则验证第一待校验身份凭证;
53.若第一待校验身份凭证符合第一预设规则,则根据第一待校验身份凭证中的用户唯一标识、将要继续答题的问卷的问卷属性和第一唯一标识确定对应的问卷数据以及已答题目的回答数据,将已答题目的回答数据填充至问卷数据中返回至客户端。
54.具体地,继续答题申请请求携带了第一待校验身份凭证和继续答题请求。服务器端提取出第一待校验身份凭证。为了验证第一待校验身份凭证的真实性,需要根据对应的第一预设规则验证第一待校验身份凭证的合法性,防止黑客攻击。若验证成功,则从第一待校验身份凭证中获取到用户唯一标识、待答问卷的问卷属性即可获取到该用户继续要答的问卷数据,以及在上一次答题中用户已回答到了哪些题目以及回答的题目对应的回答数据。并将包含有部分答题结果的问卷数据返回至客户端,供用户继续查看已答题目的答题结果以及继续其他未答题目的回答。
55.在一个实施例中,步骤s300具体包括以下步骤:
56.获取待生成的身份凭证的版本,根据待生成的身份凭证的版本获取生成身份凭证的第一预设规则;
57.基于第一预设规则,对待生成的身份凭证的版本和第一唯一标识、用户的用户唯一标识、待答问卷的问卷属性进行拼接,得到身份凭证;
58.其中,身份凭证的头部为待生成的身份凭证的版本。
59.具体地,开发人员可能会对身份凭证ticket改造用以适应业务,例如一开始ticket中有业务场景这个字段,后续在业务流程中,这个字段不再使用,再放到ticket内已经没有必要了,会增加请求数据量,所以会将ticket内的业务场景字段删除,所以ticket的版本会变化。不同版本的ticket的组成部分可能不同,因此会增加版本用来判断ticket的组成部分的,有了这个版本就可以知道ticket每部分组成以及如何去解析出来。
60.第一预设规则用于确定拼接的字段有哪些以及拼接的顺序,例如位于身份凭证头部的字段是哪个等。本实施例具体是将待生成的身份凭证的版本所对应的字段和第一唯一标识所对应的字段、用户的用户唯一标识所对应的字段、待答问卷的问卷属性所对应的字段进行拼接,得到身份凭证。得到的身份凭证具体由多个字段按照一定顺序组成。
61.本实施例version版本放在最前面有利于解析时首先根据版本获得对应的第一预设规则,后续组成部分的顺序可以随意拼接,只要客户端和服务器约定好版本号对应什么样的组成顺序即第一预设规则即可,这样就可以在代码内根据版本号对应的顺序进行组装或者解析。字段之间进行拼接的分隔符可以自定义,可以是冒号也可以是逗号或点号等不局限于此。
62.下面举例说明身份凭证ticket的生成策略:
63.首先获取当前ticket的版本,通过版本可以知道当前ticket的组成格式。通过雪花算法生成snowflakes用来做身份凭证的第一唯一标识,防止ticket重复。然后将对应的字段全部拼接起来,中间用:进行分开。例如一个身份凭证:1:123:111:1:2:43523412348234。从左到右第一个1表示身份凭证ticket的版本,123表示业务标识,111表示用户唯一标识,第二个1表示场景标识,2表示场景类型,43523412348234表示身份凭证ticket的第一唯一标识。如下所示为身份凭证ticket的组成:
64.ticket
65.versionbusinessiduseridsceneidscenetypesnowflakes
66.其中,version为版本,businessid为业务标识,userid为用户唯一表,sceneid为场景标识,scenetype为场景类型,snowflakes为身份凭证的第一唯一标识。
67.在一个实施例中,在步骤s300和步骤s400之间,该方法还包括以下步骤:
68.对身份凭证进行转换处理。
69.具体地,转换处理可以为加密处理和编码处理中的至少一种。例如,对身份凭证进行加密处理。或,对身份凭证进行编码处理。或,对身份凭证先进行加密处理再进行编码处理。
70.加密是为了保证在网络传递的过程中数据安全,防止网络请求被不法攻击者劫持造成数据被伪造。
71.加密方式同样是客户端和服务器约定好的加密方式,加密方式可以为des、aes、rsa中的一种。身份凭证通过例如des方法加密后得到加密身份凭证encrypt_ticket。
72.加密身份凭证通过base64编码生成base64_encrypt_ticket即经过加密编码处理后的身份凭证。进行base64编码处理是因为将数据进行统一编码后的编码数据适合网络传输。
73.步骤s400具体包括:将经过转换处理的身份凭证和待答问卷的问卷数据返回至客户端。
74.步骤s500中的答题结果上传请求携带经过转换处理的身份凭证、题目id和对应的回答数据。
75.在一个实施例中,上述根据对应的第一预设规则验证第一待校验身份凭证,包括:
76.对第一待校验身份凭证进行逆转换处理;
77.提取经过逆转换处理后的第一待校验身份凭证中的版本,获取版本对应的第一预设规则;
78.验证经过逆转换处理后的第一待校验身份凭证的拼接组成是否符合版本对应的第一预设规则。
79.具体地,服务器接收到的继续答题申请请求可能是网络攻击者伪造的也可能是用户真实发送的,因此,不能保证继续答题申请请求中携带的身份凭证是正确的,需要校验。本实施例先对第一待校验身份凭证进行逆转换处理,根据经过逆转换处理后的第一待校验身份凭证中的版本字段获取版本对应的第一预设规则,即生成规则,根据版本对应的第一预设规则可以进一步验证经过逆转换处理后的第一待校验身份凭证中拼接字段的拼接顺序是否正确。其中,逆转换处理具体为转换处理的相反操作;例如,加密的逆转换处理为解密,编码的逆转换处理为解码。本实施例通过多重手段来校验用户发送的继续答题请求,尽
可能防止伪造答题或黑客攻击,一定程度上保证了答题的真实性。
80.若经过逆转换处理后的第一待校验身份凭证的拼接组成符合版本对应的第一预设规则,则根据经过逆转换处理后的第一待校验身份凭证中的用户唯一标识、将要继续答题的问卷的问卷属性和第一唯一标识确定对应的问卷数据以及已答题目的回答数据,将已答题目的回答数据填充至问卷数据中返回至客户端。
81.在一个实施例中,步骤s600具体包括以下步骤:
82.从答题结果上传请求中提取出用户将要上传答题结果的问卷所对应的第二待校验身份凭证;
83.根据对应的第一预设规则验证第二待校验身份凭证;
84.若第二待校验身份凭证符合对应的第一预设规则,则从答题结果上传请求中提取出题目id和对应的回答数据;
85.从第二待校验身份凭证中提取出对应问卷的问卷属性,将题目id和对应的回答数据与问卷属性对应的问卷数据绑定。
86.具体地,提取第二待校验身份凭证中的版本,获取版本对应的第一预设规则;验证第二待校验身份凭证的拼接组成是否符合版本对应的第一预设规则。
87.若第二待校验身份凭证的拼接组成符合版本对应的第一预设规则,则根据第二待校验身份凭证中的用户唯一标识和问卷属性查找到对应的问卷数据,将答题结果上传请求中的题目id和对应的回答数据与对应的问卷数据绑定,即实现了保存该用户对应问卷数据中的已答题目的回答数据。
88.下面以一个具体应用场景说明本实施例的实现过程:
89.用户登录一应用小程序或app,通过该应用小程序或app用户可以回答问卷调查。若通过应用小程序进行问卷调查,则用户可以通过例如微信等第三方平台通过授权的方式登录到该应用小程序,此时的用户唯一标识为该用户在第三方平台例如微信的微信号或手机号。如果是通过app进行问卷调查,则通过用户账号登录的方式登录到app,此时用户唯一标识为用户在该app的账号,例如邮箱或手机号等不局限于此。
90.用户通过应用小程序或app可以选择待回答的问卷,应用小程序或app根据用户的选择生成答题申请请求并发送至服务器,该答题申请请求中携带了该用户的用户唯一标识例如微信号、手机号、邮箱中的至少一种,以及还携带了待答问卷的问卷属性。由于应用小程序或app中有多种问卷可供用户回答,因此,问卷属性用于区分不同种类的问卷。
91.服务器根据该答题申请请求会生成一个与该答题申请请求对应的身份凭证。该身份凭证用于唯一标识该用户将要回答的该待答问卷。本技术会为每个用户每回答的每一种问卷生成一个身份凭证,即,同一个用户回答不同的问卷对应不同的身份凭证。还会为不同用户回答的同一种问卷生成不同的身份凭证。第一身份凭证与应用户和问卷具有映射关系。
92.为了区分同一用户回答不同问卷所对应的不同第一身份凭证,或,区分不同用户回答同一问卷所对应的不同身份凭证,在身份凭证没有生成之前,服务器会为每个待生成的身份凭证分配一个第一唯一标识,该第一唯一标识用于区分身份凭证。
93.第一唯一标识生成后,服务器会基于用于生成身份凭证的第一预设规则,根据用户唯一标识、待答问卷的问卷属性以及第一唯一标识生成该答题申请请求对应的身份凭
证。生成的身份凭证中包含了用户唯一标识、待答问卷的问卷属性以及第一唯一标识。
94.身份凭证由字段生成,为了保密或适合网络数据传输,身份凭证需要经过加密和编码处理,使得加密编码处理后的身份凭证的数据格式为适合网络数据传输的通用数据格式,且具有一定的保密性。
95.服务器根据待答问卷的问卷属性查找到对应的问卷数据,并将经过加密编码处理后的身份凭证和问卷数据返回至应用小程序或app。
96.应用小程序或app向用户展示问卷数据,同时,用户可以在应用小程序或app上回答问卷数据中的每个题目。当用户每回答完一个题目,应用小程序或app生成一个答题结果上传请求。
97.合法用户上传的答题结果上传请求中携带了身份凭证、题目id和对应的回答数据。但是如果是非法用户例如黑客上传的答题结果上传请求,则答题结果上传请求中携带的数据可能是篡改的数据。因此服务器对接收到的答题结果上传请求都会进行合法校验。由于服务器暂时无法判断答题结果上传请求是否是合法用户通过合法手段发送的,因此,服务器从答题结果上传请求中提取出的是第二待校验身份凭证,第二待校验身份凭证可能是经过转换处理的身份凭证,也可能不是经过转换处理的身份凭证。
98.由于身份凭证需要经过加密编码转换处理,因此,第二待校验身份凭证需要通过逆转换处理即解码解密处理,得到经过逆转换处理后的第二待校验身份凭证。如果经过逆转换处理后的第二待校验身份凭证就是身份凭证,则逆转换处理后的第二待校验身份凭证包括用户唯一标识、问卷属性、第一唯一标识和版本。根据版本可以获取到生成身份凭证的第一预设规则,根据第一预设规则可以验证经过逆转换处理后的第二待校验身份凭证是否符合第一预设规则,如果符合第一预设规则,则确定逆转换处理后的第二待校验身份凭证确实为身份凭证。从答题结果上传请求中提取出题目id和对应的回答数据,从经过逆转换处理后的第二待校验身份凭证中提取出对应问卷的问卷属性,将题目id和对应的回答数据与问卷属性对应的问卷数据绑定,即实现了将问卷的回答数据同步上传至服务器保存。
99.如果出现答题结果上传请求没有第二待校验身份凭证、对第二待校验身份凭证解码和/或解密失败、第二待校验身份凭证中的组成字段不符合对应的第一预设规则中的至少一种情况,则服务器拒绝该用户的答题结果上传请求,向小程序或app返回错误提示。
100.当问卷的题目还没有全部回答完用户中途退出,下次用户需要继续答题时,再次登录到应用小程序或app,点击继续答题按钮,应用小程序或app生成一个继续答题申请请求,并发送至服务器。
101.合法用户上传的继续答题申请请求中携带了身份凭证。但是如果是非法用户例如黑客上传的继续答题申请请求,则继续答题申请请求中携带的数据可能是篡改的数据。因此服务器对接收到的继续答题申请请求都会进行合法校验。由于服务器暂时无法判断继续答题申请请求是否是合法用户通过合法手段发送的,因此,服务器从继续答题申请请求中提取出的是第一待校验身份凭证,第一待校验身份凭证可能是经过转换处理的身份凭证,也可能不是经过转换处理的身份凭证。
102.由于身份凭证需要经过加密编码转换处理,因此,第一待校验身份凭证需要通过逆转换处理即解码解密处理,得到经过逆转换处理后的第一待校验身份凭证。如果经过逆转换处理后的第一待校验身份凭证就是身份凭证,则经过逆转换处理后的第一待校验身份
凭证包括用户唯一标识、问卷属性、第一唯一标识和版本。根据版本可以获取到生成身份凭证的第一预设规则,根据第一预设规则可以验证经过逆转换处理后的第一待校验身份凭证是否符合第一预设规则,如果符合第一预设规则,则确定经过逆转换处理后的第一待校验身份凭证确实为身份凭证。从经过逆转换处理后的第一待校验身份凭证中提取出将要继续答题的问卷的问卷属性、用户唯一标识和第一唯一标识,根据用户唯一标识、问卷属性和第一唯一标识可以确定将要继续答题的问卷数据以及已答题目的回答数据,服务器将问卷数据连同已答题目的回答数据返回至应用小程序或app。在应用小程序或app上显示有每个题目、已答题目的回答数据或者显示在当前待答题目的节点,已答题目或其他未答题目可以通过翻页查看。
103.如果出现答题结果上传请求没有第一待校验身份凭证、对第一待校验身份凭证解码和/或解密失败、第一待校验身份凭证中的组成字段不符合对应的第一预设规则中的至少一种情况,则服务器拒绝该用户的继续答题申请,向小程序或app返回错误提示。
104.在一个实施例中,该方法还包括以下步骤:
105.若当前对客户端发送的一答题结果上传请求解析失败,则向客户端返回错误提示,并中断问卷答题。
106.具体地,解析失败的原因可以包括从客户端发送的一答题结果上传请求提取不出第二待校验身份凭证、当前对从客户端发送的一答题结果上传请求提取出的第二待校验身份凭证进行逆转换时逆转换失败、经过逆转换的第二待校验身份凭证中拼接组成不符合对应版本所对应的第一预设规则、经过逆转换的第二待校验身份凭证中的用户唯一标识与答题上传请求中的用户唯一标识不一致等至少一种。
107.如果服务器端当前接收到某个答题结果上传请求后,在解析过程中解析失败,则服务器端向该客户端返回错误提示,并中断该用户的问卷答题操作,禁止继续答题。此实施例是为了及时发现错误,以免用户在后续过程中做无效答题操作。待服务器端检测并修复错误后,才允许继续答题。
108.在一个实施例中,若上述当前对客户端发送的一答题结果上传请求解析失败,则向客户端返回错误提示,并中断问卷答题,包括以下至少一种:
109.若当前对从客户端发送的一答题结果上传请求提取出的第二待校验身份凭证进行解码时,解码失败,则向客户端返回第一错误提示,并中断问卷答题;
110.若当前对从客户端发送的一答题结果上传请求提取出的第二待校验身份凭证成功解码后进行解密时,解密失败,则向客户端返回第二错误提示,并中断问卷答题;
111.当前对从客户端发送的一答题结果上传请求提取出的第二待校验身份凭证成功解码和解密,若经过解码和解密的第二待校验身份凭证中拼接组成不符合对应版本所对应的第一预设规则,则向客户端返回第三错误提示,并中断问卷答题;
112.当前对从客户端发送的一答题结果上传请求提取出的第二待校验身份凭证成功解码和解密,若经过解码和解密的第二待校验身份凭证中的用户唯一标识与答题上传请求中的用户唯一标识不一致,则向客户端返回第四错误提示,并中断问卷答题。
113.具体地,服务端收到答题结果上传请求后,首先从答题结果上传请求中提取第二待校验身份凭证,如果答题结果上传请求中没有第二待校验身份凭证即base64_encrypt_ticket,则直接向客户端返回失败提示,并中断该待答问卷的问卷答题。
114.如果答题结果上传请求中存在第二待校验身份凭证,则对第二待校验身份凭证进行解码操作,如果解码失败,则向客户端返回第一错误提示,并中断该待答问卷的问卷答题。第一错误提示可以为以弹框形式弹出错误提示,也可以以语音形式播报错误提示。
115.如果解码成功,则会将第二待校验身份凭证base64_encrypt_ticket进行base64解码还原成加密身份凭证encrypt_ticket。
116.如果上述解码成功,则会进一步对加密身份凭证encrypt_ticket进行解密操作,如果解密成功,则会得到经过解码和解密的第二待校验身份凭证。如果解密失败,则服务器会向客户端返回第二错误提示,并中断该待答问卷的问卷答题。第二错误提示可以为以弹框形式弹出错误提示,也可以以语音形式播报错误提示。
117.理论上经过解码和解密的第二待校验身份凭证中的拼接字段和字段的拼接顺序符合第一预设规则。但是如果答题结果上传请求是黑客伪造的,则经过解码和解密的第二待校验身份凭证的格式不一定符合第一预设规则。如果从经过解码和解密的第二待校验身份凭证提取不出版本,则说明该第二待校验身份凭证不符合第一预设规则。如果从经过解码和解密的第二待校验身份凭证提取出版本后,根据版本获取到了对应的第一预设规则,但是经过解码和解密的第二待校验身份凭证中包含的字段、字段之间的拼接顺序任意一个不符合对应的第一预设规则,则说明该答题结果上传请求也不合法,可能是伪造的。服务器会向客户端返回第三错误提示,并中断该待答问卷的问卷答题。第三错误提示可以为以弹框形式弹出错误提示,也可以以语音形式播报错误提示。
118.如果经过解码和解密的第二待校验身份凭证符合对应的第一预设规则,则从经过解码和解密的第二待校验身份凭证提取出用户唯一标识,将从经过解码和解密的第二待校验身份凭证提取出用户唯一标识与答题结果上传请求携带的用户唯一标识进行匹配。若二者不一致,则服务器会向客户端返回第四错误提示,并中断该待答问卷的问卷答题。第四错误提示可以为以弹框形式弹出错误提示,也可以以语音形式播报错误提示。
119.在一个实施例中,步骤s200具体包括以下步骤:
120.通过雪花算法生成snowflakes作为待生成的身份凭证的第一唯一标识。
121.具体地,snowflake算法,是twitter开源的分布式id生成算法,该算法会生成一个64bit的数字作为唯一id,每一个id由如下4部分按顺序组成:
122.1.固定位占用1bit,其值始终是0,没有实际作用。
123.2.时间戳位占用41bit,精确到毫秒。
124.3.工作机器id位占用10bit。
125.4.序列号位占用12bit,每个节点每毫秒0开始不断累加,最多可以累加到4095(即12bit可表示的最大数字)。
126.生成的snowflakes用来作为身份凭证ticket的第一唯一标识。
127.算法运行步骤如下:
128.给服务器设置一个工作机器id(由开发人员确认一个10bit的值就可以),服务器记录执行算法时的时间戳,服务器生成1个序列号,从0开始生成,每次生成比上一次生成的值增1,如果在同一个毫秒级时间戳内,生成的序列号值超过了4095,等待1毫秒后重新从0开始生成(等待1毫秒那么上一步记录的时间戳就不一样了),将前面3步的数据按id组成顺序拼接一个完整的id即为snowflakes。
129.本技术通过设计通用的身份凭证可以有效的扩展问卷场景,通过解析身份凭证可以判断是否是伪造的请求,有效杜绝错误或者恶意的提交,降低对数据库的压力,将多次的答题通过同一个第一唯一标识关联起来,利于后续的查询。
130.图3为本技术一实施例中问卷答题管理装置的结构框图,参考图3,该装置包括:
131.第一接收模块100,用于接收用户通过客户端发送的答题申请请求,其中,答题申请请求包括用户唯一标识和待答问卷的问卷属性;
132.标识生成模块200,用于获取为待生成的身份凭证分配的第一唯一标识;
133.凭证生成模块300,用于基于第一预设规则,根据用户唯一标识、待答问卷的问卷属性以及第一唯一标识生成与答题申请请求对应的身份凭证;
134.发送模块400,用于将身份凭证和待答问卷的问卷数据返回至客户端,其中,问卷数据包括至少一个待回答的题目;
135.第二接收模块500,用于接收客户端发送的答题结果上传请求,答题结果上传请求为客户端每监听到用户所答的一个题目的回答数据后生成的,且,答题结果上传请求携带身份凭证、题目id和对应的回答数据;
136.解析保存模块600,用于解析答题结果上传请求,以获取并保存与用户对应的问卷数据中已答题目的回答数据。
137.在一个实施例中,该装置还包括:
138.第一提取模块,用于若接收到客户端在检测到用户的继续答题指令后发送的继续答题申请请求,则从继续答题申请请求中提取出用户将要继续答题的问卷所对应的第一待校验身份凭证;
139.第一验证模块,用于根据对应的第一预设规则验证第一待校验身份凭证;
140.发送模块400,还用于若第一待校验身份凭证符合第一预设规则,则根据第一待校验身份凭证中的用户唯一标识、将要继续答题的问卷的问卷属性和第一唯一标识确定对应的问卷数据以及已答题目的回答数据,将已答题目的回答数据填充至问卷数据中返回至客户端。
141.在一个实施例中,凭证生成模块300具体包括:
142.规则获取模块,用于获取待生成的身份凭证的版本,根据待生成的身份凭证的版本获取生成身份凭证的第一预设规则;
143.拼接模块,用于基于第一预设规则,对待生成的身份凭证的版本和第一唯一标识、用户的用户唯一标识、待答问卷的问卷属性进行拼接,得到身份凭证;其中,身份凭证的头部为待生成的身份凭证的版本。
144.在一个实施例中,该装置还包括:
145.转换模块,用于对身份凭证进行转换处理。
146.发送模块具体用于:将经过转换处理的身份凭证和待答问卷的问卷数据返回至客户端;
147.答题结果上传请求携带经过转换处理的身份凭证、题目id和对应的回答数据。
148.在一个实施例中,第一验证模块具体包括:
149.解析单元,用于对第一待校验身份凭证进行逆转换处理;
150.规则匹配单元,用于提取经过逆转换处理后的第一待校验身份凭证中的版本,获
取版本对应的第一预设规则;
151.第一验证单元,用于验证经过逆转换处理后的第一待校验身份凭证的拼接组成是否符合版本对应的第一预设规则。
152.在一个实施例中,该装置还包括:
153.中断模块,用于若当前对客户端发送的一答题结果上传请求解析失败,则向客户端返回错误提示,并中断问卷答题。
154.在一个实施例中,转换模块,具体用于对身份凭证进行加密处理和编码处理。
155.中断模块包括以下至少一种:
156.第一子中断模块,用于若当前对从客户端发送的一答题结果上传请求提取出的第二待校验身份凭证进行解码时,解码失败,则向客户端返回第一错误提示,并中断问卷答题;
157.第二子中断模块,用于若当前对从客户端发送的一答题结果上传请求提取出的第二待校验身份凭证成功解码后进行解密时,解密失败,则向客户端返回第二错误提示,并中断问卷答题;
158.第三子中断模块,用于当前对从客户端发送的一答题结果上传请求提取出的第二待校验身份凭证成功解码和解密,若经过解码和解密的第二待校验身份凭证中拼接组成不符合对应版本所对应的第一预设规则,则向客户端返回第三错误提示,并中断问卷答题;
159.第四子中断模块,用于当前对从客户端发送的一答题结果上传请求提取出的第二待校验身份凭证成功解码和解密,若经过解码和解密的第二待校验身份凭证中的用户唯一标识与答题上传请求中的用户唯一标识不一致,则向客户端返回第四错误提示,并中断问卷答题。
160.其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本技术中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
161.关于问卷答题管理装置的具体限定可以参见上文中对于问卷答题管理方法的限定,在此不再赘述。上述问卷答题管理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
162.图4为本技术一实施例中计算机设备的内部结构框图。该计算机设备具体可以是图1中的服务器中。如图4所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置、显示屏和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。存储器包括存储介质和内存储器。存储介质可以是非易失性存储介质,也可以是易失性存储介质。存储介质存储有操作系统,还可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器实现问卷答题管理方法。该内存储器为存储介质中的操作系统和计算机可读指令的运行提供环境。该内存储器中也可储存有计算机可读指令,该计算机
可读指令被处理器执行时,可使得处理器执行问卷答题管理方法。该计算机设备的网络接口用于与外部服务器通过网络连接通信。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。计算机设备的数据库用于以数据库形式存储数据。
163.在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令(例如计算机程序),处理器执行计算机可读指令时实现上述实施例中问卷答题管理方法的步骤,例如图2所示的步骤s100至步骤s600及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机可读指令时实现上述实施例中问卷答题管理装置的各模块/单元的功能,例如图3所示模块100至模块600的功能。为避免重复,这里不再赘述。
164.处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
165.存储器可用于存储计算机可读指令和/或模块,处理器通过运行或执行存储在存储器内的计算机可读指令和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
166.存储器可以集成在处理器中,也可以与处理器分开设置。
167.本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
168.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令被处理器执行时实现上述实施例中问卷答题管理方法的步骤,例如图2所示的步骤s100至步骤s600及该方法的其它扩展和相关步骤的延伸。或者,计算机可读指令被处理器执行时实现上述实施例中问卷答题管理装置的各模块/单元的功能,例如图3所示模块100至模块600的功能。为避免重复,这里不再赘述。
169.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指示相关的硬件来完成,所述的计算机可读指令可存储于一计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可
得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双倍速率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
170.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
171.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
172.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献