Webhook
欺诈状态更新(对于转入人工分析或响应为待处理的事件)通过 Webhook 通知。为此,需要通过支持团队配置一个端点地址,我们将通过该地址通知更新,以及一个用于签名请求的 signature_key。
客户也可以使用轮询技术。在这种情况下,只需不配置 Webhook 端点,并使用查询端点进行轮询即可。
注意
出于安全原因,所有 Webhook 请求将仅发送到通过 HTTPS 提供服务的端点。
签名
Python 签名计算示例
hmac_obj = hmac.new(signature_key.encode('utf-8'), (url + method + payload).encode('utf-8'), hashlib.sha1)
return hmac_obj.hexdigest()
为确保在 Webhook 端点收到的请求来自我们的服务器,HMAC 签名将在 Signature Header 中发送,方式与认证过程类似。
在服务器端计算签名的预期值后,需要将计算的签名与发送的签名进行比较。如果签名匹配,则表示请求来自我们的服务器且可信。
事件更新 Webhook
Request Body
{
"id": "123456",
"analysis_status": "automatically_approved",
"event_date": "2019-10-01T10:37:25-03:00"
}
事件分析状态更新请求采用上述格式,并通知欺诈状态的变化。使用的方法为 PUT,端点地址根据客户需求也可包含事件 ID。需要注意的是,请求体以 UTF-8 编码的文本形式发送。
事件更新端点示例:
请求 URL 中的 {evento} 字段可以根据正在通知的事件取以下值:
- bill_payment
- bankslip
- wire_transfer
- withdrawal
- pix
event_date 字段表示通知创建的日期和时间,如果之前的通知发送失败,可能是过去的时间。
重试
当收到 HTTP 状态码 200 作为响应时,通知视为已完成。如果通知失败,将进行 7 次重试,重试间隔如下,直到返回 200 或重试结束:
- 10 秒
- 40 秒
- 160 秒
- 640 秒
- 2560 秒
- 10240 秒
- 40960 秒