codecamp

百度智能小程序 消息推送介绍

消息推送介绍

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

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

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

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

    Encrypt 字段为加密消息体,可以使用 AesDecryptUtil 类的 decrypt 方法进行解密。提供了 php, java2 种语言的示例代码 点击下载,请运行示例代码前先阅读 readme 文件。


百度智能小程序 推送模板消息
百度智能小程序 在页面中使用客服消息
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

百度智能小程序开发文档

百度智能小程序 组件

百度智能小程序 地图

百度智能小程序 画布

百度智能小程序 API

百度智能小程序 界面

百度智能小程序 关注小程序引导组件

百度智能小程序 自定义组件

百度智能小程序 媒体

百度智能小程序 设备

百度智能小程序 拨打电话

百度智能小程序 内存警报

百度智能小程序 手机联系人

百度智能小程序 用户截屏事件

百度智能小程序 第三方平台

百度智能小程序 开放接口

百度智能小程序 百度收银支付

百度智能小程序 分包预下载

百度智能小程序 数据分析

百度智能小程序 服务端

百度智能小程序 云开发

百度智能小程序 初始化

百度智能小程序 云函数

百度智能小程序 服务端初始化

百度智能小程序 服务器获取上下文

百度智能小程序 服务端云函数

百度智能小程序 开发教程

百度智能小程序 功能开发

百度智能小程序 基本原理

百度智能小程序 小程序自动化

百度智能小程序 视频教程

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }