Classroom report data query interface
<h5>Interface introduction</h5>
<ul>
<li>Classroom report data query</li>
</ul>
<h5>Interface information</h5>
<table>
<thead>
<tr>
<th style="text-align: left;"></th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">URL</td>
<td style="text-align: left;"><a href="https://neukol.axzt.net/edu_openapi/billing/classData">https://neukol.axzt.net/edu_openapi/billing/classData</a></td>
</tr>
<tr>
<td style="text-align: left;">HTTP Request Methods</td>
<td style="text-align: left;">POST</td>
</tr>
<tr>
<td style="text-align: left;">Coding format</td>
<td style="text-align: left;">UTF-8</td>
</tr>
</tbody>
</table>
<h5>Request header</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">Field name</th>
<th style="text-align: left;">Type</th>
<th style="text-align: left;">Required</th>
<th style="text-align: left;">Description</th>
<th style="text-align: left;">Example</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">no</td>
<td style="text-align: left;">no</td>
<td style="text-align: left;">no</td>
<td style="text-align: left;">no</td>
<td style="text-align: left;">no</td>
</tr>
</tbody>
</table>
<h5>表单参数</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">Field name</th>
<th style="text-align: left;">Type</th>
<th style="text-align: left;">Required</th>
<th style="text-align: left;">Description</th>
<th style="text-align: left;">Example</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">True</td>
<td style="text-align: left;">Institution ID</td>
<td style="text-align: left;">5f1140092302bd0ac2dbc7c4</td>
</tr>
<tr>
<td style="text-align: left;">sign</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">True</td>
<td style="text-align: left;">Fixed 32-bit all lowercase characters, institution authentication security key,sign=MD5(params+SECRET),Among them, params represents the concatenated string of all parameters in the request body except sign in lexicographic order(like: “key1=value1key2=value2”)</td>
<td style="text-align: left;">c09636a3a529a386fdaa389228e36fac</td>
</tr>
<tr>
<td style="text-align: left;">timestamp</td>
<td style="text-align: left;">Long</td>
<td style="text-align: left;">True</td>
<td style="text-align: left;">Unix Epoch timestamp within 20 minutes of current calling interface, unit: milliseconds</td>
<td style="text-align: left;">1600140360000</td>
</tr>
<tr>
<td style="text-align: left;">classRoomId</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">True</td>
<td style="text-align: left;">Class section ID</td>
</tr>
<tr>
<td style="text-align: left;">callBack</td>
<td style="text-align: left;">boolean</td>
<td style="text-align: left;">True</td>
<td style="text-align: left;">whether to trigger the callback interface ( i.e. treasure live / cal _ over / interface )</td>
</tr>
</tbody>
</table>
<h5>Response parameter explanation</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">Parameter name</th>
<th style="text-align: left;">Type</th>
<th>Description</th>
<th>Example</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">responseHeader</td>
<td style="text-align: left;">Object</td>
<td>Response header information</td>
</tr>
<tr>
<td style="text-align: left;"> └status</td>
<td style="text-align: left;">int</td>
<td>HTTP corresponding status code</td>
<td>200</td>
</tr>
<tr>
<td style="text-align: left;"> └msg</td>
<td style="text-align: left;">String</td>
<td>Error message</td>
<td>OK</td>
</tr>
<tr>
<td style="text-align: left;">response</td>
<td style="text-align: left;">Object</td>
<td>Response body content</td>
</tr>
<tr>
<td style="text-align: left;"> └sid</td>
<td style="text-align: left;">String</td>
<td>Institution ID</td>
<td>60486d95e5e9bee409ba5b14</td>
</tr>
<tr>
<td style="text-align: left;"> └classroomId</td>
<td style="text-align: left;">String</td>
<td>Class section ID</td>
<td>60498219e5e9be24642e5a45</td>
</tr>
<tr>
<td style="text-align: left;"> └studentsNumber</td>
<td style="text-align: left;">String</td>
<td>Classrooms numbers ( including teachers and assistants )</td>
<td>3</td>
</tr>
<tr>
<td style="text-align: left;"> └mcNumber</td>
<td style="text-align: left;">String</td>
<td>Teacher sets the number of answering machines</td>
<td>6</td>
</tr>
<tr>
<td style="text-align: left;"> └rpdNumber</td>
<td style="text-align: left;">String</td>
<td>Teacher sets the number of responders</td>
<td>4</td>
</tr>
<tr>
<td style="text-align: left;"> └classDuration</td>
<td style="text-align: left;">String</td>
<td>Total class time (unit: seconds)</td>
<td>989</td>
</tr>
<tr>
<td style="text-align: left;"> └data</td>
<td style="text-align: left;">List<Object></td>
<td>Student Bookstore</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;"> └uid</td>
<td style="text-align: left;">String</td>
<td>Student uid</td>
<td>86166421663238823</td>
</tr>
<tr>
<td style="text-align: left;"> └userId</td>
<td style="text-align: left;">String</td>
<td>Student userid(userid specified when booking a class section),Format 1: 3-20 digits plus character combination ID does not allow special characters to exist, which means ordinary account(like: tea00001),Format 2 : country code + character’ # ‘ + mobile phone number, indicating mobile phone account number(like: 86#15751860597)</td>
<td>stu001</td>
</tr>
<tr>
<td style="text-align: left;"> └name</td>
<td style="text-align: left;">String</td>
<td>Student name</td>
<td>Zhang San</td>
</tr>
<tr>
<td style="text-align: left;"> └joinTime</td>
<td style="text-align: left;">Long</td>
<td>Class entry time, timestamp, unit: milliseconds</td>
<td>1615430733502</td>
</tr>
<tr>
<td style="text-align: left;"> └stayDuration</td>
<td style="text-align: left;">Integer</td>
<td>Attendance duration, unit: seconds</td>
<td>866</td>
</tr>
<tr>
<td style="text-align: left;"> └correctMcNumber</td>
<td style="text-align: left;">Integer</td>
<td>Number of correct answers</td>
<td>1</td>
</tr>
<tr>
<td style="text-align: left;"> └rpdNumber</td>
<td style="text-align: left;">Integer</td>
<td>Number grabbed when answering</td>
<td>1</td>
</tr>
<tr>
<td style="text-align: left;"> └cupNumber</td>
<td style="text-align: left;">Integer</td>
<td>Number of trophies obtained</td>
<td>1</td>
</tr>
<tr>
<td style="text-align: left;"> └raiseHandsNumber</td>
<td style="text-align: left;">Integer</td>
<td>Number of hands raised</td>
<td>1</td>
</tr>
<tr>
<td style="text-align: left;"> └bgNumber</td>
<td style="text-align: left;">Integer</td>
<td>Number of times on the blackboard</td>
<td>1</td>
</tr>
</tbody>
</table>
<h5>Request example</h5>
<pre><code>POST /edu_openapi/billing/classData HTTP/1.1
Host: neukol.axzt.net
Content-Type: application/x-www-form-urlencoded
Cookie: JSESSIONID=FBB6DC9832FC5A73CB00473EF8BAF6E1
Content-Length: 142
timestamp=1615435761632&sid=60486d95e5e9bee409ba5b14&sign=c68f444df2000ce4b427d48e49a7c827&classRoomId=60498219e5e9be24642e5a45&callBack=false</code></pre>
<h5>Response example</h5>
<pre><code>{
"responseHeader": {
"status": 200,
"msg": "OK"
},
"response": {
"sid": "60486d95e5e9bee409ba5b14",
"classroomId": "60498219e5e9be24642e5a45",
"studentsNumber": "3",
"mcNumber": "6",
"rpdNumber": "4",
"classDuration": "989",
"data": [
{
"uid": "86166421663238823",
"userId": "stu001",
"name": "stu001",
"joinTime": 1615430733502,
"stayDuration": 866,
"correctMcNumber": 1,
"noCommitMcNumber": 0,
"rpdNumber": 2,
"cupNumber": 17,
"raiseHandsNumber": 6,
"bgNumber": 2
},
{
"uid": "864879353572641",
"userId": "stu002",
"name": "stu002",
"joinTime": 1615430649659,
"stayDuration": 944,
"correctMcNumber": 1,
"noCommitMcNumber": 0,
"rpdNumber": 2,
"cupNumber": 4,
"raiseHandsNumber": 2,
"bgNumber": 1
}
]
}
}</code></pre>
<h5>Error code</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">Error code</th>
<th>Explanation</th>
</tr>
</thead>
<tbody>
</tbody>
</table>