饿了么开放平台http推送协议
开放平台以HTTP POST 的方式进行消息推送请求。
开放平台消息推送请求的HTTP Header中的Content-Type:application/json; charset=utf-8
推送请求的HTTP Body为JSON格式,具体数据格式参见【消息推送】文档--消息体说明。
为了防止推送消息被篡改,开放平台进行推送的时候会有简单签名,签名规则见下方【签名规则】,应用需要自行校验消息数据。
推送消息接收成功的定义:应用在消息处理完成后,回复 HTTP Response的 code = 200 以及body为{"message":"ok"}。
推送消息接收失败的定义:应用在消息处理完成后,没有回复 HTTP Response的 code = 200 以及body为{"message":"ok"}。
推送请求如果3s内没有收到响应头为200响应,平台认为此次推送不成功,不管因为什么原因,平台都会在一分钟后重新发起推送(设置路径在【管理中心】-【查看应用】-【正式环境】-【重试次数】(<=3))。
应用收到推送HTTP请求后,必须在3s内完成响应,否则平台认为超时响应,会重复推送,造成双方资源浪费。
应用需要自行处理重复推送造成的消息重复,要求幂等,可以使用消息中的 requestId + type 两个字段值进行消息去重。
为了方便未来的消息内容升级,应用需要兼容处理当前消息中不存在的字段。
应用需要支持推送地址的GET访问,当GET请求访问时,请直接返回{"message":"ok"},用于推送地址的可用性测试。
只支持域名,不支持 IP 地址的形式。