消息推送介绍

  1. 使用超级管理员或管理员账号登录开发者平台后,按提示填写相关信息,具体如下:
  • URL: 开发者用来接收消息的接口 URL。开发者所填写的 URL 必须以 http:// 或 https:// 开头,分别支持 80 端口和 443 端口。
  • Token: 可由开发者可以任意填写,用作生成签名(该 Token 会和接口 URL 中包含的 Token 进行比对,从而验证安全性)。
  • EncodingAESKey: 由开发者手动填写或随机生成,将用作消息体加解密密钥
  • 消息加解密方式:明文模式(默认).兼容模式和安全模式。可以选择消息数据格式:XML 格式(默认)或 JSON 格式。
  1. 验证消息的确来自百度服务器

开发者提交信息后,百度服务器将发送 POST 请求到填写的服务器地址 URL 上,POST 请求携带参数如下表所示:

参数描述
signature百度加密签名,signature 结合了开发者填写的 token 参数和请求中的 timestamp 参数.nonce 参数。
timestamp时间戳
nonce随机数
echoStr随机字符串

开发者通过检验 signature 对请求进行校验(下面有校验方式)。若确认此次 POST 请求来自百度服务器,请原样返回 echoStr 参数内容,则接入生效,成为开发者成功,否则接入失败。加密/校验流程如下:

  • 将 token.timestamp.nonce 三个参数进行字典序排序
  • 将三个参数字符串拼接成一个字符串进行 sha1 加密
  1. 消息解密

Encrypt 字段为加密消息体,可以使用 AesDecryptUtil 类的 decrypt 方法进行解密。

提供了 php, java2 种语言的示例代码 点击下载,请运行示例代码前先阅读 readme 文件。