跳到主要内容

Webhook

状态更新(针对转人工分析或响应为待处理的注册)通过 Webhook 进行通知。为此,需要通过支持团队配置一个端点地址,我们将通过该地址通知更新,同时还需配置一个用于签署请求的 secret_token

尽管不推荐,客户也可以使用轮询技术。在这种情况下,不需要配置 webhook 端点,只需使用注册检索端点进行轮询即可。

签名

Python 签名计算示例

    hmac_obj = hmac.new(signature_key.encode('utf-8'), (endpoint + method + payload).encode('utf-8'), hashlib.sha1)
return hmac_obj.hexdigest()

为确保接收到的 webhook 端点请求来自我们的服务器,类似于认证过程,在 Signature Header 中发送 HMAC 签名。

在服务器端计算出签名预期值后,需要将计算出的签名与发送的签名进行比较。如果签名匹配,则意味着请求来自我们的服务器并且是可信的。

请求

curl --location 'YOUR-ENDPOINT-HERE' \
--header 'Signature: CALCULATED-HASH-HMAC' \
--data '{"natural_person_id": "538509", "analysis_status": "manually_approved", "event_date": "2024-11-13T17:52:50Z", "reason": "manually_approved"}'

请求具有上述格式,并通知状态变更。重要提示:请求使用 HTTP POST 方法,请求体以 UTF-8 编码文本形式发送。

重试

当收到 HTTP Status 200 响应时,通知被视为已送达。如果通知失败,将进行 5 次重试,时间间隔如下,直到收到 200 或重试结束:

  • 30 秒
  • 60 秒
  • 120 秒
  • 240 秒
  • 360 秒