消息推送介绍
- 使用超级管理员或管理员账号登录开发者平台后,按提示填写相关信息,具体如下:
- URL: 开发者用来接收消息的接口 URL。开发者所填写的 URL 必须以 http:// 或 https:// 开头,分别支持 80 端口和 443 端口。
- Token: 可由开发者可以任意填写,用作生成签名(该 Token 会和接口 URL 中包含的 Token 进行比对,从而验证安全性)。
- EncodingAESKey: 由开发者手动填写或随机生成,将用作
消息体加解密密钥
。 - 消息加解密方式:明文模式(默认).兼容模式和安全模式。可以选择消息数据格式:XML 格式(默认)或 JSON 格式。
- 验证消息的确来自百度服务器
开发者提交信息后,百度服务器将发送 POST 请求到填写的服务器地址 URL 上,POST 请求携带参数如下表所示:
参数 | 描述 |
---|---|
signature | 百度加密签名,signature 结合了开发者填写的 token 参数和请求中的 timestamp 参数.nonce 参数。 |
timestamp | 时间戳 |
nonce | 随机数 |
echoStr | 随机字符串 |
开发者通过检验 signature 对请求进行校验(下面有校验方式)。若确认此次 POST 请求来自百度服务器,请原样返回 echoStr 参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:
- 将 token.timestamp.nonce 三个参数进行字典序排序
- 将三个参数字符串拼接成一个字符串进行 sha1 加密
- 消息解密
Encrypt 字段为加密消息体,可以使用 AesDecryptUtil 类的 decrypt 方法进行解密。
提供了 php, java2 种语言的示例代码 点击下载
,请运行示例代码前先阅读 readme 文件。