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 请求加密,详见 配置回调。
请求参数
属性 | 数据类型 | 备注 | 描述 |
---|---|---|---|
events | EventElem | 必填 | 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
属性 | 数据类型 | 备注 | 描述 |
---|---|---|---|
version | string | 必填 | 当前为 1.0.0,使用 语义化版本 2.0.0 规范 |
uuid | string | 必填 | 每条 webhook 触发事件的唯一标识 |
event | string | 必填 | 事件枚举值 1: 订阅,2: 取消订阅 |
msg | object | 必填 | 返回信息,结构取决于 event 的值: 1-2: MsgSubscribe |
MsgSubscribe
这个消息结构对应 EventElem 中 event=1
或 event=2
的场景。
属性 | 数据类型 | 备注 | 描述 |
---|---|---|---|
string | 必填 | 邮箱 | |
old_subscribe | string | 必填 | 旧的订阅状态 1: 订阅,0: 取消订阅,-1: 未知 |
new_subscribe | string | 必填 | 新的订阅状态 1: 订阅,0: 取消订阅,-1: 未知 |
changed_time | bigint | 必填 | 变更时间戳(以秒为单位) |
changed_source | string | 必填 | 变更来源,来自 SmartLink 的 source 属性 |
响应信息
请求成功时,返回 http status code 200
到 SmartLink,JSON 不必返回。
请求失败时,返回 http status code != 200
到 SmartLink。SmartLink 会重发 webhook 消息,25分钟内最多重试20次,20次后不再重试。