🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 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>