6.3*MQTT 统一消息通知

优质
小牛编辑
134浏览
2023-12-01

说明

一: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={}