单点登录(SSO)子账户接口
<p>[TOC]</p>
<h1>一、SSO创建和登录接口</h1>
<h2>接口介绍</h2>
<p>使用该接口,可以通过单点登录(SSO)的方式创建子账户,创建成功之后可以通过此接口登录子账户。使用此接口创建的用户,属于主账户下属的子账户,权益同主账户同步。除创建和登录方式不同外,其他权益、设置同手动创建的子账户完全一致。</p>
<h2>接口参数说明</h2>
<p>请求方式:<code>Get</code></p>
<p>接口链接:<a href="https://www.wjx.cn/zunxiang/login.aspx?appid=&subuser=&mobile=&email=&roleId=&ts=&sign">https://www.wjx.cn/zunxiang/login.aspx?appid=&subuser=&mobile=&email=&roleId=&ts=&sign</a>=</p>
<table>
<tr><th style="background-color: rgb(64, 158, 255);color: rgb(255, 255, 255);">参数名</th><th style="background-color: rgb(64, 158, 255);color: rgb(255, 255, 255);">参数说明</th><th style="background-color: rgb(64, 158, 255);color: rgb(255, 255, 255);">是否必须</th></tr>
<tr><td>appid</td><td>开发ID,需联系客服生成,生成后可以在多用户管理页面查看</td><td>是</td></tr>
<tr><td>appkey</td><td>开发秘钥,需联系客服生成,生成后可以在多用户管理页面查看</td><td>是</td></tr>
<tr><td>ts</td><td>时间戳,从1970-01-01 00:00:00开始到现在的秒数,有效期为60秒</td><td>是</td></tr>
<tr><td>encode</td><td>签名验证方式,目前支持sha1和sm3,不传或传入不合法时,默认使用:sha1</td><td>否</td></tr>
<tr><td>sign</td><td>加密签名算法,sign=sha1(appid+appkey+subuser+mobile+email+roleId+ts)当encode=sm3时,sign=sm3(appid+appkey+subuser+mobile+email+roleId+ts)点击查看 [签名示例](https://www.wjx.cn/signsample.aspx?type=3 "签名示例")</td><td>是</td></tr>
<tr><td>subuser</td><td>创建子账户的用户名,请使用绝对唯一性字段</td><td>是</td></tr>
<tr><td>mobile</td><td>创建子账户绑定的手机号码,可选字段,留空时子账户的手机号码为空;</td><td>否</td></tr>
<tr><td>email</td><td>创建子账户绑定的邮箱,可选字段,留空时子账户的邮箱为空;</td><td>否</td></tr>
<tr><td>roleId</td><td>创建子账户的角色,可选字段,留空默认为“问卷管理员”子账户角色:1-系统管理员,2-问卷管理员,3-统计结果查看员,4-完整结果查看员</td><td>否</td></tr>
<tr><td>url</td><td>指定登录成功后的跳转地址,不传时默认跳转到我的问卷页面</td><td>否</td></tr>
<tr><td>admin</td><td>是否主账号登录,非主账号不需要传此参数,主账号登录时admin参数填写1,subuser=主账号;示例:`https://www.wjx.cn/zunxiang/login.aspx?appid=&ts=&sign=&subuser=&admin=1`</td><td>否</td></tr>
<tr><td>bnts</td><td>支持传递多个bnt,bnt的格式:名称^跳转地址,多个bnt间使用"|"分隔,例:`返回1^https://www.baidu.com|返回2^https://www.baidu.com`注意:参数值需要urlencode</td><td>否</td></tr>
</table>
<h2>子账户的创建/登录和删除</h2>
<p>创建:第一次使用以上接口时,就是子账户的创建过程;</p>
<p>登录:子账户登录和创建使用相同的接口,其中手机号码、邮箱、角色三个字段,仅在首次创建时有效,在第二次登录时如果三个字段信息有更改,也不会将传递信息更新到问卷星系统;</p>
<p>删除:如需删除子账户,需要主账户登录后,在多用户管理页面手动删除。需要注意是:在您自己系统删除一个员工账户后,无法自动同步删除其在问卷星对应的子账户。</p>
<h1>二、获取SSO子账户问卷列表接口</h1>
<h2>接口介绍</h2>
<p>通过此接口,可以获取某一个子账户问卷管理员名下的问卷列表。</p>
<h2>接口参数说明</h2>
<p>请求方式:<code>Get</code></p>
<p>接口链接:<code>https://www.wjx.cn/zunxiang/getuserq.aspx?appid=&username=&ts=&folder=&sign=</code></p>
<h2>获取到数据说明</h2>
<p>此接口会有<code>10</code>分钟的缓存时间,新增的问卷可能需要<code>10</code>分钟以后才能获取。如果需要实时获取,请在接口<code>URL</code>参数中增加<code>&nocache=1</code>(增加参数后,接口每分钟只能调用<code>5</code>次)。</p>
<p>数据格式:<code>JSON</code></p>
<p>数据示例: </p>
<pre><code class="language-csharp">[
{
"qid": "89767",
"name": "新考试",
"begindate": "2017-08-20 11:52:43",
"answercount": "5",
"pcurl": "https://www.wjx.cn/jq/89767.aspx",
"murl": "https://www.wjx.cn/m/89767.aspx"
},
{
"qid": "89819",
"name": "考试",
"begindate": "2017-08-18 21:21:35",
"answercount": "4",
"pcurl": "https://www.wjx.cn/jq/89819.aspx",
"murl": "https://www.wjx.cn/m/89819.aspx"
}
]</code></pre>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">参数说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">qid</td>
<td style="text-align: left;">问卷ID</td>
</tr>
<tr>
<td style="text-align: left;">name</td>
<td style="text-align: left;">问卷标题</td>
</tr>
<tr>
<td style="text-align: left;">begindata</td>
<td style="text-align: left;">问卷的创建时间</td>
</tr>
<tr>
<td style="text-align: left;">answercount</td>
<td style="text-align: left;">当前问卷答卷数</td>
</tr>
<tr>
<td style="text-align: left;">desc</td>
<td style="text-align: left;">问卷说明(默认不返回),如果需要此字段,请在接口URL参数中增加&includedesc=1。</td>
</tr>
<tr>
<td style="text-align: left;">pcurl</td>
<td style="text-align: left;">PC端问卷访问链接</td>
</tr>
<tr>
<td style="text-align: left;">murl</td>
<td style="text-align: left;">移动端问卷访问链接</td>
</tr>
</tbody>
</table>
<h1>三、获取SSO子账户答卷数据接口</h1>
<h2>接口介绍</h2>
<p>通过此接口可以获取到部分答卷数据,包括:提交序号、参与者姓名、总分、提交时间、提交所用时间。需要注意的是,只有答卷总数少于<code>20000</code>才能使用此接口,而且此接口只能获取到部分数据而且全部答卷详情数据。如需获取全部答卷详情数据,可以参考:数据推送的<code>API</code>接口。</p>
<h2>接口参数说明</h2>
<p>请求方式:<code>Get</code></p>
<p>接口链接:<code>https://www.wjx.cn/zunxiang/getjoinlist.aspx?appid=&activity=&ts=&sign=&pageindex=&pagesize=</code></p>
<h2>获取到数据说明</h2>
<p>数据格式:<code>JSON</code></p>
<p>数据示例:</p>
<pre><code class="language-csharp">[
{
"parterjoiner": "test2",
"totalvalue": "15",
"index": "3",
"timetaken": "8",
"submittime": "2017-08-20 14:25:39"
},
{
"parterjoiner": "test3",
"totalvalue": "15",
"index": "4",
"timetaken": "141",
"submittime": "2017-08-20 14:38:55"
}
]</code></pre>
<table>
<thead>
<tr>
<th style="text-align: left;">参数名</th>
<th style="text-align: left;">参数说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">parterjoiner</td>
<td style="text-align: left;">当前答卷得分</td>
</tr>
<tr>
<td style="text-align: left;">index</td>
<td style="text-align: left;">当前答卷序号</td>
</tr>
<tr>
<td style="text-align: left;">timetaken</td>
<td style="text-align: left;">当前答卷作答所用的时间,单位:秒</td>
</tr>
<tr>
<td style="text-align: left;">submittime</td>
<td style="text-align: left;">当前答卷的提示时间</td>
</tr>
</tbody>
</table>
<h1>四、SSO子账户参与者端接口</h1>
<h2>接口介绍</h2>
<p>使用该接口,做为问卷或考试填写参与者的登录之后,可看到一个完善的填写参与者的用户体系,查看到自己需要作答哪些问卷、已经完成了哪些问卷、积分排行等等信息。</p>
<h2>接口参数说明</h2>
<p>请求方式:<code>get</code></p>
<p>加密链接参数如下:<code>https://www.wjx.cn/zunxiang/qlist.aspx?appid=&username=&joiner=&realname=&dept=&extf=&ts=&sign=</code></p>
<h2>访问其他页面</h2>
<p>以上接口填写者参与者点击后访问的是用户体系的主页,还可以通过携带参数访问其他不同的页面,如:</p>
<p>1、待参与页面:<code>https://www.wjx.cn/zunxiang/qlist.aspx?appid=&username=&joiner=&realname=&dept=&extf=&ts=&sign=</code></p>
<p>2、已参与页面:<code>https://www.wjx.cn/zunxiang/qlistjoin.aspx?appid=&username=&joiner=&realname=&dept=&extf=&ts=&sign=</code></p>
<p>3、答卷详情页:<code>https://www.wjx.cn/zunxiang/joinrelquery.aspx?appid=&username=&joiner=&activity=&joinid=&realname=&dept=&extf=&ts=&sign=</code>,如果需要隐藏返回按钮,请在参数后面加上<code>&noback=1</code>。</p>
<p>访问答卷详情页,需增加两个参数:<code>activity</code>(问卷ID)和<code>joinid</code>(答卷流水号,需使用数据推送接口获取),同时加密签名算法改变为:<code>sign=sha1(appid+appkey+username+joiner+activity+joinid+realname+dept+extf+ts)</code></p>