Query balance interface
<h5>Interface introduction</h5>
<ul>
<li>Institutional accounts with specific SID and SECRET can check the balance of the designated institution.</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/balance">https://neukol.axzt.net/edu_openapi/billing/balance</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>Form parameter</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;">schoolId</td>
<td style="text-align: left;">String</td>
<td style="text-align: left;">True</td>
<td style="text-align: left;">Organization ID (SID) to query balance</td>
<td style="text-align: left;">8f1140092302bd0ac2dbc7c4</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;"> └balance</td>
<td style="text-align: left;">String</td>
<td>Account balance</td>
<td>"100.00"</td>
</tr>
<tr>
<td style="text-align: left;"> └rechargeAmount</td>
<td style="text-align: left;">String</td>
<td>Total recharge amount</td>
<td>"100.00"</td>
</tr>
<tr>
<td style="text-align: left;"> └consumeAmount</td>
<td style="text-align: left;">String</td>
<td>Total consumption amount (including consumption during probation period, restriction and exemption, etc.)</td>
<td>"100.00"</td>
</tr>
<tr>
<td style="text-align: left;"> └costAmount</td>
<td style="text-align: left;">String</td>
<td>Total deduction amount</td>
<td>"100.00"</td>
</tr>
<tr>
<td style="text-align: left;"> └trialLeftTime</td>
<td style="text-align: left;">Long</td>
<td>Remaining time of the organization probation period, unit: MS; if it is blank, it means there is no probation period; if it is negative, it means the probation period has expired</td>
<td>10000</td>
</tr>
<tr>
<td style="text-align: left;"> └trialEndTime</td>
<td style="text-align: left;">Long</td>
<td>End time of the probation period of the organization, unit: MS; 0 means no probation period</td>
<td>10000</td>
<td>1616055954000</td>
</tr>
<tr>
<td style="text-align: left;"> └agreements</td>
<td style="text-align: left;">Object</td>
<td>Agreement details</td>
<td></td>
</tr>
<tr>
<td style="text-align: left;"> └└startTime</td>
<td style="text-align: left;">String</td>
<td>Protocol start time, unit: milliseconds</td>
<td>1615305600000</td>
</tr>
<tr>
<td style="text-align: left;"> └└endTime</td>
<td style="text-align: left;">String</td>
<td>Agreement deadline, unit: milliseconds</td>
<td>1646841599999</td>
</tr>
<tr>
<td style="text-align: left;"> └└url</td>
<td style="text-align: left;">String</td>
<td>Agreement link</td>
<td><a href="https://neuvision.yeecall.com:1443/eduwebadmin/#/agreement">https://neuvision.yeecall.com:1443/eduwebadmin/#/agreement</a></td>
</tr>
<tr>
<td style="text-align: left;"> └└expLeftAmount</td>
<td style="text-align: left;">String</td>
<td>The remaining amount of experience balance, "0.00" means no experience balance</td>
<td>"30.00",</td>
</tr>
<tr>
<td style="text-align: left;"> └└expExpireDays</td>
<td style="text-align: left;">Long</td>
<td>The remaining days of experience balance, 0 means no experience days.</td>
<td>10</td>
</tr>
</tbody>
</table>
<h5>Request example</h5>
<pre><code>POST /edu_openapi/edu_openapi/billing/balance HTTP/1.1
Host: https://neukol.axzt.net
Content-Type: application/x-www-form-urlencoded
sign=45104ea711963e1b595d974a376ec738×tamp=1614073825765</code></pre>
<h5>Response example</h5>
<pre><code>{
"responseHeader": {
"status": 200,
"msg": "OK"
},
"response": {
"balance": "5386.60",
"rechargeAmount": "29050.01",
"consumeAmount": "25664.71",
"costAmount": "7352.73",
"trialLeftTime": 156032694,
"trialEndTime": 1616055954000,
"agreement": {
"startTime": 1615305600000,
"endTime": 1646841599999,
"url": "https://neuvision.yeecall.com:1443"
}
}
}}</code></pre>
<h5>Error code</h5>
<table>
<thead>
<tr>
<th style="text-align: left;">Error code</th>
<th>Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">9994</td>
<td>Parameter format error</td>
</tr>
<tr>
<td style="text-align: left;">2000</td>
<td>sign certification failed</td>
</tr>
<tr>
<td style="text-align: left;">2001</td>
<td>Request timeout</td>
</tr>
<tr>
<td style="text-align: left;">2002</td>
<td>Institution does not open an open interface</td>
</tr>
<tr>
<td style="text-align: left;">2010</td>
<td>The recharged Institution does not exist</td>
</tr>
<tr>
<td style="text-align: left;">500</td>
<td>unknown exception on the server</td>
</tr>
<tr>
<td style="text-align: left;">2107</td>
<td>The recharged Institution does not exist</td>
</tr>
<tr>
<td style="text-align: left;">2109</td>
<td>Institution has no authority to recharge the wallet or query the balance</td>
</tr>
</tbody>
</table>