小程序开放平台

文档中心
起步
目录
配置小程序
小程序框架
小程序运行时
自定义组件
基础能力
存储
网络
分包
服务端能力
消息推送
数据预拉取
按需注入和用时注入
开放能力
性能优化
转发
事件回调
基础库
调试
数据分析
服务端调试

消息推送

开发
>
指南
>
基础能力
>
服务端能力
>
消息推送
>
更新时间:2024-11-28 14:30:37

开发者服务器接收消息推送

开发者需要按照如下步骤完成:

  1. 填写服务器配置
  2. 验证服务器地址的有效性
  3. 据接口文档实现业务逻辑,接收消息和事件

填写服务器配置

专业号平台中填写 URL(服务器地址)、Token(令牌) 和 EncodingAESKey(消息加密密钥)等信息。

  • URL: 开发者用来接收小红书消息和事件的接口 URL。开发者所填写的 URL 必须以 http:// 或 https:// 开头,分别支持 80 端口和 443 端口。
  • Token: 开发者可以任意填写,用作生成签名(该 Token 会和接口 URL 中包含的 Token 进行比对,从而验证安全性)。
  • EncodingAESKey: 由开发者手动填写或随机生成,将用作消息体加解密密钥。

  • 消息体的数据格式为 JSON。
  • 消息体为纯密文,开发者需要加密和解密,详情请参考消息加解密

验证消息的确来自小红书服务器

开发者提交信息后,小红书服务器将发送 GET 请求到填写的 URL 上,GET 请求携带参数如下表所示:

参数
描述
signature小红书加密签名,signature 结合了开发者填写的 token 参数和请求中的 timestamp 参数、nonce 参数
timestamp时间戳
nonce随机数
echostr随机字符串

开发者通过检验 signature 对请求进行校验。若确认此次 GET 请求来自小红书服务器,请原样返回 echostr 参数内容,则接入生效,否则接入失败。加密/校验流程如下:

  1. 将 token、timestamp、nonce 三个参数进行字典序排序
  2. 将三个参数字符串拼接成一个字符串进行 sha1 加密
  3. 开发者获得加密后的字符串可与 signature 对比,标识该请求来源于小红书

接收消息和事件

当某些特定的用户操作引发事件推送时(如用户向小程序客服发送消息、小程序的审核消息通知等情况),小红书服务器会将消息(或事件)的数据包以 POST 请求发送到开发者配置的 URL,开发者可以依据自身业务逻辑进行响应。

小红书服务器在将用户的消息发给开发者服务器地址后,在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。如果在调试中,发现用户无法收到响应的消息,可以检查是否消息处理超时。

开发者服务器收到请求必须做出下述回复,这样小红书服务器才不会对此作任何处理,并且不会发起重试,否则,将出现严重的错误提示。详见下面说明:

  • 直接回复success(推荐方式)
  • 若接口文档有指定返回内容,应按文档说明返回