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