# http/https 推送方式
如果应用采用的消息推送方式为 http/https 推送方式,在有应用设置的消息事件发生时,开放平台会通过请求应用设置的消息推送地址进行消息的投递。
### 推送协议
1. 开放平台以HTTP/HTTPS POST 的方式进行消息推送请求。
2. 开放平台消息推送请求的HTTP/HTTPS Header中的Content-Type:application/x-www-form-urlencoded; charset=utf-8
3. 为了防止推送消息被篡改,开放平台进行推送的时候会有简单签名,签名规则见下方[签名验证规则](签名验证规则.md),应用需要自行校验消息数据。
4. 为了防止推送消息的安全性,开放平台进行推送进行了openssl加密,加密方式aes-256-gcm或者rsa加密, 加密规则见下方[解密规则](解密规则.md)。
5. 应用在消息处理完成后,需要回复HTTP Response的code 200 以及body为{“message”:“ok”},表示此次推送消息接收成功。
6. 推送请求如果3s内没有收到响应头为200响应,平台认为此次推送不成功,不管因为什么原因,平台都会在一分钟后重新发起推送(总推送次数不超过3次(<=3))。
7. 应用收到推送HTTP/HTTPS请求后,必须在3s内完成响应,否则平台认为超时响应,会重复推送,造成双方资源浪费。
8. 应用需要自行处理重复推送造成的消息重复,要求幂等,可以使用消息中的 scanned_code + machine_code 两个字段值进行消息去重。
9. 为了方便未来的消息内容升级,应用需要兼容处理当前消息中不存在的字段。
10. 应用需要支持推送地址的GET访问,当GET请求访问时,请直接返回{"message":"ok"},用于推送地址的可用性测试。
11. 只支持域名,不支持 IP 地址的形式。
### 注意
1. <p style="color: red">开发者收到推送信息和设置推送地址,必须返回json字符串{"message":"ok"},开放平台如果没有推送成功,或者没有收到{"message":"ok"},或发起重试,最多重试3次</p>
2. <p style="color: red">RSA非对称加密参数生成4096位的秘钥,不然会出现加密失败的情况</p>
- 使用前准备【必看】
- 开发者服务指引【必看】
- 接口更新动态
- 2024年5月
- 2024年1月
- 2023年11月
- 2023年10月
- 2023年9月
- 2023年6月
- 开发文档【必看】
- 调用协议【必看】
- 授权文档【必接】
- 自有型应用
- 开放型应用(OAuth2.0授权码模式)
- 开放型应用(扫码授权模式)
- SDK使用说明
- API文档【按需对接】
- 设备文档
- 设备绑定
- 设备解绑或取消授权
- 状态获取
- 离线或重启控制
- 打印控制
- logo控制
- 音效音量控制
- 内置语音控制
- 打印宽度获取
- 型号版本获取
- 接单拒单控制
- 打印文档
- 文本打印
- 图片打印
- 面单文档
- 面单生成并打印
- 面单取消
- 打印队列文档
- 订单状态获取(单订单)
- 订单列表获取
- 订单取消打印(单订单)
- 订单取消打印(全量)
- 订单重打(单订单)
- 应用设置文档
- 推送地址设置
- K8支付设置文档
- 推送开关设置
- 关键词设置
- 高级设置
- 打印消息推送
- 打印消息推送说明
- 打印完成推送
- 终端状态推送
- 接单拒单推送
- K8扫码信息推送
- 扫码相关功能流程图
- 产品介绍
- 授权说明
- 消息推送
- http/https推送方式
- 签名验证规则
- 解密规则
- 指令说明
- 验签解密示例
- 打印指令文档
- 指令文档说明
- 文本打印指令集
- 语音指令文档
- 多语言指令文档
- 扫码功能指令
- 常见问题
- 错误码说明
- FAQ