欢迎!这里是飞印API文档

飞印API文档描述、示例


授权应用回调

<p><strong>简要描述:</strong></p> <ul> <li>本回调主要用于通知第三方授权应用相关通知事件。</li> <li>开发商如果有多个飞印应用,可以分别给每个应用设置专有的回调地址。</li> <li>譬如:当有新的商户授权给一个应用时,飞印平台会立即通过回调地址向第三方应用系统通知该授权事件。</li> <li>当授权商户名下的设备离线/上线/缺纸等情况发生时也会通知到第三方系统。</li> </ul> <p><strong>请求方式:</strong></p> <ul> <li>POST,JSON提交</li> </ul> <p><strong>异常重试策略:</strong></p> <ul> <li>如果商户的系统没有响应(譬如在维护或网络异常),飞印平台会依次按照如下时间间隔(秒)共重试7次:1, 3, 6, 9, 12, 15, 18秒 (一共64秒)</li> </ul> <p><strong>参数:</strong> </p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">msg_type</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>回调的消息类型,主要有<br/><strong>heartbeat</strong> 健康心跳检查<br/><strong>auth_added</strong> 有商户授权该应用<br/><strong>auth_removed</strong> 商户取消了授权<br/><strong>msg_printed</strong> 第三发应用发送给授权商户的消息打印回调<br/> <strong>device_status</strong> 授权商户的打印机状态变更回调<br/> <strong>app_paid</strong> 授权商户购买记录回调</td> </tr> <tr> <td style="text-align: left;">payload</td> <td style="text-align: left;">否</td> <td style="text-align: left;">object</td> <td>回调消息体,object格式视msg_type的值而定,详见下面说明</td> </tr> </tbody> </table> <ul> <li> <p>当msg_type=<strong>heartbeat</strong>时,payload为一个空字符串</p> </li> <li>当msg_type=<strong>auth_added</strong>时,payload为下列对象</li> </ul> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">appid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>飞印平台中的第三方应用id</td> </tr> <tr> <td style="text-align: left;">uid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>授权商户的id</td> </tr> <tr> <td style="text-align: left;">name</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>授权商户的名称</td> </tr> <tr> <td style="text-align: left;">time</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>授权时间,yyyy-MM-dd HH:mm:ss 格式</td> </tr> <tr> <td style="text-align: left;">secret</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>签名,把appid,time, uid和API_KEY 的值按顺序直接拼接起来,做MD5加密:<br/> md5(appid + time + uid + API_KEY)</td> </tr> </tbody> </table> <p><strong>请求示例</strong></p> <pre><code> { "msg_type":"auth_added", "payload": { "uid": "5a58867e0aca3027f742a4de", "name": "商户名称", "appid": "5a58867e0aca3027f742a4de", "time":"2018-01-25 23:00:00", "secret": "1122abe86be0b7de3cee8cfbffef3344" } }</code></pre> <ul> <li>当msg_type=<strong>auth_remove</strong>时,payload为下列对象</li> </ul> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">appid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>飞印平台中的第三方应用id</td> </tr> <tr> <td style="text-align: left;">uid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>授权商户的id</td> </tr> <tr> <td style="text-align: left;">name</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>授权商户的名称</td> </tr> <tr> <td style="text-align: left;">time</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>取消授权时间,yyyy-MM-dd HH:mm:ss 格式</td> </tr> <tr> <td style="text-align: left;">secret</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>签名,把appid,time, uid和API_KEY 的值按顺序直接拼接起来,做MD5加密:<br/> md5(appid + time + uid + API_KEY)</td> </tr> </tbody> </table> <p><strong>请求示例</strong></p> <pre><code> { "msg_type":"auth_removed", "payload": { "uid": "5a58867e0aca3027f742a4de", "name": "商户名称", "appid": "5a58867e0aca3027f742a4de", "time":"2018-01-25 23:00:00", "secret": "1122abe86be0b7de3cee8cfbffef3344" } }</code></pre> <ul> <li>当msg_type=<strong>msg_printed</strong>时,payload为下列对象</li> </ul> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">device_no</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>机器编号</td> </tr> <tr> <td style="text-align: left;">msg_no</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>第三方应用在向商户 <a href="https://www.showdoc.cc/home/page/index/page_id/82826059039914" title="发送消息">发送消息</a>时指定的关联id: <strong>msg_no</strong> 如果没有关联,飞印平台会自动生成一个uuid代替</td> </tr> <tr> <td style="text-align: left;">print_time</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>打印完成的时间,yyyy-MM-dd HH:mm:ss</td> </tr> <tr> <td style="text-align: left;">secret</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>签名,把device_no,msg_no, print_time和API_KEY 的值按顺序直接拼接起来,做MD5加密: md5(把device_no + msg_no + print_time + API_KEY)</td> </tr> </tbody> </table> <p><strong>请求示例</strong></p> <pre><code> { "msg_type":"msg_printed", "payload": { "device_no": "4600408123456789", "print_time": "2017-08-01 10:03:04", "msg_no":"some-thirdparty-id", "secret": "005eabe86be0b7de3cee8cfbffeff96a" } }</code></pre> <ul> <li>当msg_type=<strong>device_status</strong>时,payload为下列对象</li> </ul> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">device_no</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>机器编号</td> </tr> <tr> <td style="text-align: left;">online_status</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>打印机在线运行状态,包括:<br/> <strong>online</strong> 在线 <br/> <strong>offline</strong> 离线 <br/> <strong>overheat</strong> 打印头过热 <br/> <strong>error</strong> 打印机系统故障</td> </tr> <tr> <td style="text-align: left;">paper_status</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>打印机纸张状态,包括:<br/> <strong>normal</strong> 正常 <br/> <strong>lack</strong> 缺纸</td> </tr> <tr> <td style="text-align: left;">secret</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>签名,把device_no,online_status, paper_status和API_KEY 的值按顺序直接拼接起来,做MD5加密: md5(把device_no + online_status + paper_status + API_KEY)</td> </tr> </tbody> </table> <p><strong>请求示例</strong></p> <pre><code> { "msg_type":"device_status", "payload": { "device_no": "4600408123456789", "online_status": "online", "paper_status":"normal", "secret": "1122abe86be0b7de3cee8cfbffef3344" } }</code></pre> <ul> <li>当msg_type=<strong>app_paid</strong>时,payload为下列对象</li> </ul> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">必选</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">appid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>飞印平台中的第三方应用id</td> </tr> <tr> <td style="text-align: left;">uid</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>授权商户的id</td> </tr> <tr> <td style="text-align: left;">name</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>授权商户的名称</td> </tr> <tr> <td style="text-align: left;">offering</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>授权商户购买的产品</td> </tr> <tr> <td style="text-align: left;">time</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>购买时间,yyyy-MM-dd HH:mm:ss 格式</td> </tr> <tr> <td style="text-align: left;">secret</td> <td style="text-align: left;">是</td> <td style="text-align: left;">string</td> <td>签名,把appid,offering, time, uid和API_KEY 的值按顺序直接拼接起来,做MD5加密:<br/> md5(appid + offering + time + uid + API_KEY)</td> </tr> </tbody> </table> <p><strong>请求示例</strong></p> <pre><code> { "msg_type":"app_paid", "payload": { "appid": "5a58867e0aca3027f742a4de", "uid": "5a58867e0aca3027f742a4de", "name": "商户名称", "offering" : "30元包月套餐", "time":"2019-03-25 23:00:00", "secret": "1122abe86be0b7de3cee8cfbffef3344" } }</code></pre> <p>对于所有飞印平台发出的回调请求,飞印平台会预期得到第三方系统返回如下response,</p> <pre><code>{ "errcode": 0, "errmsg" : "ok" }</code></pre> <p><strong>返回参数说明</strong></p> <table> <thead> <tr> <th style="text-align: left;">参数名</th> <th style="text-align: left;">类型</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">errcode</td> <td style="text-align: left;">number</td> <td>返回状态,0为成功,非0表示第三方系统未能正确处理飞印发送过来的回调请求</td> </tr> <tr> <td style="text-align: left;">errmsg</td> <td style="text-align: left;">string</td> <td>错误说明,当errcode为0时为&quot;ok&quot;,否则需要填写出错说明</td> </tr> </tbody> </table>

页面列表

ITEM_HTML