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 秒