签名

Protecting your sensitive data

Checking a Webhook Signature

BlockATM会对发送至您端点的webhook事件和请求进行签名,通过在每个事件的BlockATM-Signature-V2头信息中包含签名。这使您可以验证事件和请求确实由BlockATM发送,而非第三方。

在验证webhook事件的BlockATM-Signature-V2签名前,您需要从BlockATM仪表板的开发者页面获取您的webhook API密钥。

步骤一

将所有JSON对象中的参数按照键的ASCII字符顺序升序排列并连接, 使用"key=value"的格式,以"&"分隔。 最后将请求头中的'BlockATM-Request-Time'以"&time="的格式拼接在末尾。

以下是签名参数示例及生成的签名:

请求参数:

{
  "amount": 999,
  "cashierId": 91,
  "chainId": "11155111",
  "custNo": "cust00001",
  "fromAddress": "0xa9e358e33a57e67c9b84618a52f0194c345c8e35",
  "id": 8210003764,
  "network": "Ethereum",
  "status": 9,
  "symbol": "USDT",
  "txId": "0x1da59f33aa6f6b435514126e26d5622c3e377e4762579aa0ac0130139625853d"
}

链接排序好的参数和时间:

步骤二

使用SHA-256哈希函数计算HMAC签名。将您账户的webhook密钥(Secret Key)作为密钥,并将拼接好的签名参数字符串作为消息内容进行签名计算。

验证请求头中的签名与预期签名是否一致。

示例

按照您的实现语言参考下面的代码示例:

Last updated