6.3*MQTT 统一消息通知
说明
一:mqtt连接:账号:ms_门店编号,密码:sha1(商家apiKey),端口号:1883,订阅主题:ms_门店编号
mqtt下载地址:http://emqtt.com/clients
二:订阅的消息体格式:注意:超时消息无需再进行业务处理,直接废弃该通知
示例:
{
"version":"1.0",
"list":[{
"type": "do-order", //业务类型
"timeout": "2018-10-22 13:41:34", //超时时间
"data": { //具体业务参数
"id": "177320"
}
},
"type": "cash-pay", //业务类型
"timeout": "2018-10-22 13:41:34", //超时时间
"data": { //具体业务参数
"id": "177320"
}
}]
}
三:目前支持下发的业务类型名称如下:
do-new:未确认的新订单,数据对应协议1.4(MQTT中暂时不劫持do-new,待后续更新优化后更新支持)
do-order:已确认的新订单,数据对应协议1.1
cash-request: 桌台拉账单请求,数据对应协议2.1中state=0
cash-pay: 线上支付完成通知,数据对应协议2.1中state=2,3
bk-new: 新预订订单,数据对应协议7.3
do-state:订单状态变化,主要用于外卖订单状态变化时通知线下
do-sync:订单同步,主要用于通需要线下同步当前桌台账单 对应 1.10 同步桌台账单
data-dish:基础数据-菜品同步,主要用于通知线下主动同步当前门店菜品 对应 3.1 上传基础菜品信息
data-table:基础数据-桌台同步,主要用于通知线下主动同步当前桌台列表 对应 3.3 桌台列表上传
四:消息通知响应流程:
1.线下收到对应业务类型的消息体数据后,立即执行相对应的业务处理流程(列如:当收到 do-sync:订单同步 消息通知后,根据data获取具体业务参数,再通过1.10同步桌台账单接口协议立即同步某桌台账单)
2.线下需实时保持MQTT链接成功状态,并订阅主题topic=ms_门店编号
注意:mqtt发送的消息会保证必须成功通知到一次,线下软件离线状态时也会发送消息,直到重新链接后会收到离线过程中所有的消息通知,需要根据超时时间过滤处理
五:各业务类型的具体业务参数体说明
type=do-new
data={"id": "1776951"} // 对应查询1.2接口
type=do-order
data={"id": "2161105"}// 对应查询1.2接口
type=cash-request
data={"id": "177320"}//对应查询2.5接口
type=cash-pay
data={"id": "2631012"}//对应查询2.5接口
type=bk-new
data={"id": "4610"}
type=do-state
data={"id": "6570429"}//对应查询1.2接口
type=do-sync
data=
{
"bzid": "87181831", // 线下账单业务单号(非必传参数,作为线上平台主动拉单同步账单机制,要求:若线下收到包含该字段的mqtt消息时,用bzid取线下账单数据,进行账单同步)
"msid": "6786",
"table": "A01",
"time": "2018-10-01 10:52:38"
}
type=data-dish
data={"replace":"0"} // replace=1,覆盖全部菜品,包括分类、菜品,但是gdsid相同的菜品会保留图片无需重复上传。
type=data-table
data={}