跳到主要内容

Webhook

SmartLink 服务将通过 HTTP 请求发送 JSON 内容到指定的 URL。

SmartLink 为所有 webhook 请求加密,将签名 SL-Webhook-Signature 放在协议头,以便您验证请求的合法性。此步骤非强制性的,但强烈建议执行。

签名由以下算法生成:

SL-Webhook-Signature = md5 (path + "?" + params + body + webhook key)

  • path:不包含域名的 Post 请求 URL 路径。
  • params:Post 请求 URL 中的参数,按 ASCII 升序排列并以 "&" 符号连接,如 gameid=1&seq=abcdefg
  • body:JSON 字符串,可带换行符,如 {"data":{"msg":"abcd"}}
  • webhook key:从 SmartLink 获取的 webhook 密钥,用于为 webhook 请求加密,详见 配置回调

请求参数

属性数据类型备注描述
eventsEventElem必填webhook 事件的详情信息

代码示例

{
"events": [
{
"version": "1.0.0",
"uuid": "xxxxxxxx-xxxx",
"event": 1,
"msg": {
"email": "smartlink@xxx.com",
"old_subscribe": -1,
"new_subscribe": 1,
"changed_time": 12345678,
"changed_source": "API-LI-PASS"
}
}
]
}

EventElem

属性数据类型备注描述
versionstring必填当前为 1.0.0,使用 语义化版本 2.0.0 规范
uuidstring必填每条 webhook 触发事件的唯一标识
eventstring必填事件枚举值
1: 订阅,2: 取消订阅
msgobject必填返回信息,结构取决于 event 的值:
1-2: MsgSubscribe

MsgSubscribe

这个消息结构对应 EventElemevent=1event=2 的场景。

属性数据类型备注描述
emailstring必填邮箱
old_subscribestring必填旧的订阅状态
1: 订阅,0: 取消订阅,-1: 未知
new_subscribestring必填新的订阅状态
1: 订阅,0: 取消订阅,-1: 未知
changed_timebigint必填变更时间戳(以秒为单位)
changed_sourcestring必填变更来源,来自 SmartLink 的 source 属性

响应信息

请求成功时,返回 http status code 200 到 SmartLink,JSON 不必返回。

请求失败时,返回 http status code != 200 到 SmartLink。SmartLink 会重发 webhook 消息,25分钟内最多重试20次,20次后不再重试。