平台主动生成并向下推送的接口称为“下行接口”,下行接口采用推送方式。
平台生成的订单、支付、预订等订单、支付信息会通过下行接口推送到门店系统。
注意:MQ推送的消息只包含必要的消息内容,没有对应的业务详情数据,各主题消息可能需要额外的调用来获取消息的详情(DLL接口中已封装处理,不需要额外的调用)。
自行对接MQTT时:
MQTT接入地址:需要先调用sys_init初始化接口(协议0.5),成功后返回的mqtthost即为MQTT接入地址。
MQTT接入用户名:ms_门店编号,例如门店编号1234的门店MQTT接入用户名为:ms_1234
MQTT接入用户密码:sha1(商户APIKEY),即将商户APIKEY进行sha1后的签名串为密码。
MQTT订阅Topic:同用户名,即同上述例子ms_1234
下行接口包含所有业务模块需要向下推送的消息,需要根据推送消息的主题对应各业务处理流程。消息主题说明如下表格:
主题 业务归属 描述 消息详情 后续业务调用 do-order 订单 堂食、外卖已确认订单 文档1.1 1.2/do_confirm do-state 订单 订单状态发生变化,如:取消 无 无 do-new 订单 未确认订单,采用门店接口确认模式时才会发送些消息 文档1.1 1.2/do_confirm do-sync 订单 堂食桌台账单同步 无 1.7/do_sync_tablebill cash-request 支付 桌台秒付账单请求 文档2.5 2.2/cash_post_bill cash-pay 支付 秒付、快捷支付完成后推送 文档2.5 2.3/cash_post_cash bk-new 预订 预订单推送 文档7.1 7.2/bk_state sys-notify 通知 系统发送的通知,如网络断开等信息 无 无 inv-state 电票 开票状态变化通知 文档12.3 12.3/invoice_get_detail
下行推送消息格式
1.do-order{
"type": "do-order",
"timeout": "2019-07-22 20:10:08",
"data": {
"msid": "20243",
"id": "8600051098",
"time": "2019-07-22 18:10:08"
}
}
2. do-sync{
"type": "do-sync",
"timeout": "2019-07-22 18:30:03",
"data": {
"msid": "20243",
"table": "778",
"bzid": "201907220012",
"time": "2019-07-22 18:10:03"
}
}
bzid:收银系统账单号
注:bzid/table参数可能都有,优先使用bzid匹配账单数据。如没有bzid则使用table桌台匹配账单。
3.sys-notify{
"type": "sys-notify",
"timeout": "2019-07-22 18:30:03",
"data": {
"msg": "网络连接断开,正在尝试重连",
"cate": "net_error"
}
}
4.invoice{
"type": "inv-state",
"timeout": "2020-03-25 12:10:35",
"data": {
"id": "49",
"time": "2020-03-25 10:10:35"
}
}