先登记回调地址
调用配置回调地址接口时传 appid 与以 http(s) 开头的公网 callbackUrl。登记成功后会返回 callback_secret;该密钥用于验签,应由服务端保存。
按原始请求体验签
不要先解析 JSON 再重新序列化。服务端应保留收到的原始请求体,用 callback_secret 计算 HMAC-SHA256(secret, X-Qingluan-Timestamp + '.' + 原始请求体),然后与 X-Qingluan-Signature 做安全比较。
按 event_type 分发
事件类型位于包体 event_type 字段,不在 HTTP 头中。建议先校验时间戳与签名,再解析 JSON,最后按 event_type 把 events 交给对应处理器。
建议实施步骤
- 准备可访问的 http(s) 回调地址。
- 调用配置回调地址接口并安全保存 callback_secret。
- 读取时间戳、签名头和原始请求体完成验签。
- 验签通过后按 event_type 处理 events。
常见问题
事件类型在哪里?
事件类型在 JSON 包体的 event_type 字段中,不在 HTTP 请求头中。
验签为什么必须使用原始请求体?
重新序列化 JSON 可能改变空格或字段顺序,从而使 HMAC 结果不同。