Webhook
欺诈状态的更新(对于被转入人工分析或响应为待处理的订单)以及被阻止的卖家,通过 Webhook 进行通知。为此,需要通过支持团队配置一个端点地址以接收更新通知,以及一个用于签署请求的 signature_key。值得注意的是,所有 webhook 发送都将发送到单一端点。
对于订单状态更新,客户也可以使用轮询技术。在这种情况下,只需不配置 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 头部中发送。
在服务器端计算预期签名值后,需要将计算出的签名与发送的签名进行比较。如果签名匹配,则表明请求来自我们的服务器且是可信任的。
事件更新 Webhook
Request Body
{
"id": "123456",
"analysis_status": "automatically_approved",
"event_date": "2019-10-01T10:37:25-03:00"
}
事件分析状态更新请求具有上述格式,通知欺诈状态的变化。使用的方法是 PUT,端点地址也可以根据客户需求包含事件 ID。重要的是要注意,请求正文以 UTF-8 编码的文本发送。
重试
当收到 HTTP Status 200 作为响应时,通知被认为已完成。如果通知失败,将以以下间隔进行 7 次重试,直到返回 200 或尝试结束:
- 10 秒
- 40 秒
- 160 秒
- 640 秒
- 2560 秒
- 10240 秒
- 40960 秒