2.2.1 答卷提交[1001001]
<p>[TOC]</p>
<h1>接口地址</h1>
<p>生产环境:<code>https://www.wjx.cn/openapi/default.aspx</code>
<code>注:如果您已经自定义域名,请将接口地址中的域名www.wjx.cn换成自定义域名</code></p>
<ul>
<li>
<h1>2.2.1.1 请求参数格式</h1>
</li>
</ul>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
<th>必需</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">vid</td>
<td style="text-align: left;">int</td>
<td>问卷编号</td>
<td>是</td>
<td>问卷星发送问卷链接中activityid的值</td>
</tr>
<tr>
<td style="text-align: left;">inputcosttime</td>
<td style="text-align: left;">int</td>
<td>用户填写时间(秒)</td>
<td>是</td>
<td>用户打开问卷到提交答卷的时间差,单位为秒,当填写时间小于等于1秒时,视为机器提交</td>
</tr>
<tr>
<td style="text-align: left;">submitdata</td>
<td style="text-align: left;">string</td>
<td>答卷内容</td>
<td>是</td>
<td>参见</td>
</tr>
<tr>
<td style="text-align: left;">udsid</td>
<td style="text-align: left;">int</td>
<td>自定义来源编号</td>
<td>否</td>
<td>问卷发送页面中获取</td>
</tr>
<tr>
<td style="text-align: left;">sojumpparm</td>
<td style="text-align: left;">string</td>
<td>自定义链接参数</td>
<td>否</td>
<td>自定义的链接参数,答卷推送或答卷提交后跳转时原样返回</td>
</tr>
</tbody>
</table>
<ul>
<li>举例
<pre><code class="language-csharp">Content-Type:application/json
{
&quot;encode&quot;: &quot;sha1&quot;,
&quot;vid&quot;: &quot;91432&quot;,
&quot;inputcosttime&quot;: 2,
&quot;appid&quot;: &quot;907&quot;,
&quot;sojumpparm&quot;: &quot;32199&quot;,
&quot;sign&quot;: &quot;ea9795633fcf5428b609020f42e1766f69bcabb4&quot;,
&quot;action&quot;: &quot;1001001&quot;,
&quot;ts&quot;: 1583836856,
&quot;submitdata&quot;: &quot;1$1}2$2}3$2&quot;
}</code></pre></li>
</ul>
<h2>2.2.1.1.1 答卷格式</h2>
<p>按以下规则拼接答卷字符串:
1、题目与题目之间以"}"分隔
2、题号与答案之间以"$"分隔</p>
<p>提交答卷时需要对问卷星保留特殊字符进行转换,转换规则如下(JavaScript代码):</p>
<pre><code class="language-javascript">var spChars = [&quot;$&quot;, &quot;}&quot;, &quot;^&quot;, &quot;|&quot;, &quot;!&quot;, &quot;&lt;&quot;];
var spToChars = [&quot;ξ&quot;, &quot;}&quot;, &quot;ˆ&quot;, &quot;¦&quot;, &quot;!&quot;, &quot;<&quot;];
function replace_specialChar(str) {
for (var i = 0; i &lt; spChars.length; i++) {
var reg = new RegExp(&quot;(\\&quot; + spChars[i] + &quot;)&quot;, &quot;g&quot;);
str = str.replace(reg, spToChars[i]);
}
if (/^[A-Za-z\s\.,]+$/.test(str))
str = str.replace(/\s+/g, &#039; &#039;);
str = str.replace(/[^\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD\u10000-\u10FFFF]/ig, &quot;&quot;);
return trim(str);
}</code></pre>
<p>java示例</p>
<pre><code class="language-java">private static final String[] SP_CHARS = {&quot;$&quot;, &quot;}&quot;, &quot;^&quot;, &quot;|&quot;, &quot;!&quot;, &quot;&lt;&quot;};
private static final String[] SP_TO_CHARS = {&quot;ξ&quot;, &quot;}&quot;, &quot;ˆ&quot;, &quot;¦&quot;, &quot;!&quot;, &quot;<&quot;};
public static String replaceSpecialChar(String str) {
for (int i = 0; i &lt; SP_CHARS.length; i++) {
String regex = &quot;\\\\&quot; + SP_CHARS[i];
str = str.replaceAll(regex, SP_TO_CHARS[i]);
}
if (str.matches(&quot;^[A-Za-z\\s\\.,]+$&quot;)) {
str = str.replaceAll(&quot;\\s+&quot;, &quot; &quot;);
}
str = str.replaceAll(&quot;[^\\x09\\x0A\\x0D\\x20-\\uD7FF\\uE000-\\uFFFD\\u10000-\\u10FFFF]&quot;, &quot;&quot;);
return str.trim();
}</code></pre>
<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>单选题<br>下拉框<br>量表题<br>评分单选<br>情景题<br>判断题</td><td>1、答案为选项序号<br>2、跳题时答案使用"-3"代替<br>3、允许填空时选项序号与填空以"^"分隔</td><td>1$1<br>1$-3<br>1$1^魂牵梦萦</td></tr><tr><td>多选题<br>评分多选<br>排序题<br>商品题</td><td>1、答案为选项序号<br>2、多个选项之间以"&#124;"分隔<br>3、跳题时答案使用"-3"代替<br>4、允许填空时选项序号与填空以"^"分隔</td><td>2$2&#124;3&#124;5<br>2$-3<br>2$2^魂牵梦萦&#124;3&#124;5</td></tr><tr><td>填空题</td><td>1、答案为用户填写文本<br>2、跳题时答案使用"(跳过)"代替</td><td>3$西安<br>3$(跳过)</td></tr><tr><td>多项填空题<br>普通多项填空<br>考试多项填空<br>考试完型填空</td><td>1、答案为用户填写文本<br>2、多个选项之间以"&#124;"分隔<br>3、跳题时答案使用"(跳过)"代替</td><td>4$10^2^2^2<br>4$(跳过)^(跳过)^(跳过)^(跳过)</td></tr><tr><td>矩阵单选题<br>矩阵量表题<br>矩阵滑动条<br>表格下拉框</td><td>1、行答案由行号加列答案组成<br>2、行号与列答案之间以"!"分隔<br>3、允许填空时列选项与填空以"^"分隔<br>4、行答案之间以","分隔<br>5、跳题时答案使用"-3"代替</td><td>5$1!1,2!2,3!1<br>5$-3,-3,-3<br>5$1!5^城,2!5^魂牵梦萦,3!1</td></tr><tr><td>矩阵多选题</td><td>1、行答案由行号加列答案组成<br>2、行号与列答案之间以"!"分隔<br>3、允许填空时列选项与填空以"^"分隔<br>4、行答案之间以","分隔<br>5、多个选项之间使用";"分隔<br>6、跳题时答案使用"-3"代替</td><td>6$1!1;2,2!2;3,3!3;4<br>6$-3,-3,-3<br>6$1!1^城在,2!2,3!1^城在;4</td></tr><tr><td>矩阵填空题<br>矩阵数值题<br>表格填空题<br>表格组合题</td><td>1、行答案由行号加列答案组成<br>2、行号与列答案之间以"!"分隔<br>3、行答案之间以"^"分隔<br>4、多个选项之间使用"&#124;"分隔<br>5、跳题时答案使用"(跳过)"代替</td><td>7$1!需要&#124;88&#124;男^2!魂牵梦萦&#124;88&#124;女<br>7$(跳过)&#124;(跳过)&#124;(跳过)^(跳过)&#124;(跳过)&#124;(跳过)</td></tr><tr><td>表格自增题</td><td>1、行答案由行号加列答案组成<br>2、行号与列答案之间以"!"分隔<br>3、行答案之间以"^"分隔<br>4、多个选项之间使用"&#124;"分隔<br>5、自增最大列数中未填写的部分,答案使用使用"Ⅳ"代替<br>6、跳题时答案使用"(跳过)"代替</td><td>8$1!1&#124;1&#124;男^2!1&#124;1&#124;女^3!Ⅳ&#124;Ⅳ&#124;Ⅳ^4!Ⅳ&#124;Ⅳ&#124;Ⅳ^5!Ⅳ&#124;Ⅳ&#124;Ⅳ<br>8$(跳过)&#124;(跳过)&#124;(跳过)^(跳过)&#124;(跳过)&#124;(跳过)^(跳过)&#124;(跳过)&#124;(跳过)^(跳过)&#124;(跳过)&#124;(跳过)^(跳过)&#124;(跳过)&#124;(跳过)</td></tr><tr><td></td><td></td><td></td></tr></table></p>
<h1>2.2.1.2 响应参数列表</h1>
<table>
<thead>
<tr>
<th style="text-align: left;">参数</th>
<th style="text-align: left;">类型</th>
<th>说明</th>
<th>必需</th>
<th>备注</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">vid</td>
<td style="text-align: left;">int</td>
<td>问卷编号</td>
<td>是</td>
</tr>
<tr>
<td style="text-align: left;">jid</td>
<td style="text-align: left;">long</td>
<td>答卷编号</td>
<td>是</td>
</tr>
<tr>
<td style="text-align: left;">index</td>
<td style="text-align: left;">long</td>
<td>答卷序号</td>
<td>是</td>
<td>从1开始按提交时间的顺序编号</td>
</tr>
<tr>
<td style="text-align: left;">jumpurl</td>
<td style="text-align: left;">string</td>
<td>跳转地址</td>
<td>是</td>
<td>提交答卷成功后的跳转地址</td>
</tr>
<tr>
<td style="text-align: left;">sojumpparm</td>
<td style="text-align: left;">string</td>
<td>自定义链接参数</td>
<td>否</td>
<td>提交答卷请求中带入该值时,原样返回</td>
</tr>
<tr>
<td style="text-align: left;">udsid</td>
<td style="text-align: left;">int</td>
<td>自定义来源编号</td>
<td>否</td>
<td>提交答卷请求中带入该值时,原样返回</td>
</tr>
</tbody>
</table>