Webhooks 允许你在每次触发指定事件类型时向特定 URL 发送 POST 请求。 当你订阅数据时可以启用此功能,为你的应用程序添加正确的 URL,一旦触发指定事件类型,我们就会发送 POST 请求,并在请求正文中包含指定事件类型消息。
消息的内容类型 是“application/json”。
请注意,我们仅接受端口号为 80 和 443 的 URL,对带有任何其他端口号的 URL 的请求将被拒绝。如果你的服务器未返回200 的状态码 ,则我们将开始重试。
重试次数
每次重试之间的延迟会增加。在最初的尝试之后,我们将进行最多7次额外的尝试。重试间隔如下:1、5、10、30、60、120、240分钟
幂等
您实现的webhook回调接口需要支持幂等
暂停推送
当出现以下任一情况时,将暂停发送通知
另请注意,IPv6 目前无法与 Webhooks 配合使用,但我们可能会在将来实现这一点。
//定义你的参数
const postSubscribeParams = {
chainIndex: '3'
url: 'http://your.server.com/webhook',
type: 'transaction',
};
//定义辅助函数
const postSubscribetData = async () => {
const apiRequestUrl = getRequestUrl(
apiBaseUrl,
'/api/v5/waas/wallet/webhook/subscribe',
postSubscribeParams
);
return fetch(apiRequestUrl, {
method: 'post',
headers: headersParams,
})
.then((res) => res.json())
.then((res) => {
return res;
});
};
const { data: subscribeData } = await postSubscribetData();
更多信息,请参考Webhook
为了接收回调信息,你需要搭建一个服务来响应 HTTP POST 请求。
为了便于快速测试,你可以使用第三方站点 webhook.site。它提供了很多工具并且允许你直接在 Web 浏览器中轻松检查、测试和自动化任何传入的 HTTPS 请求或电子邮件。
当你首次访问 webhook.site 时,你会看到如下信息,你可以用它完成测试。
https://webhook.site/#!/e7a56c2f-61d8-4c56-bb0f-6fa3f4ddedc5
回调消息规范
{
"chainIndex": "3",
"blockHeight": "110637354",
"blockHash": "0xc9c865d75d3018cde8b5bfc691491c2da4f4d08ed4f926cf1b44ffbc6b0351a0",
"blockHeight": "110637354",
"blockTime": "1689214654000",
"orderId":"12345"
"input":"0x12345698554",
"vin" : [
{
"addr" : "bc1p077evnzjv9w697a523jxvhyyt0aptmgunkk2a8wsppy3mty7gj7q9j6azc",
"number" : "0",
"txHash" : "3aead5cb471bf2d30b6c2bc9961a579a91ad0a7562800356e6c29f9c5b05a964",
"amount" : "2990241",
"voutIndex" : "1"
}
],
"voutIndex" : [
{
"addr":"",
"addrInVin" : false,
"number" : "0",
"amount" : "0"
},
{
"addr" : "bc1p6eu0hkl3jy449wrm52exssure7a8083dcsfkydh02c4vyrs2y83shdcmsy",
"addrInVin" : false,
"number" : "1",
"amount" : "330"
}
],
"fee": "21351600000000",
"fromAddr": "0x80c67432656d59144ceff962e8faf8926599bcf8",
"fromAmount": "202484827205115828530",
"gasLimit": "429723",
"gasPrice": "100000000",
"gasUsed": "213516",
"txHash": "0xc9c59a01a0bddcca4e2365c2283967c78e7b4742dce93df182361c0ed593c80f",
"iType": "0",
"logIndex": "-1",
"nonce": "831889",
"status": "1",
"symbol": "ARBITRUM",
"toAddr": "0x56ba2193dd79f0eeeda77df04f5060e714e38029",
"value": "1101146000000000003"
}
[{
"blockHeight": "8455400",
"blockTime": "1689216050",
"blockHash": "0xda14230da73a0ea116b1d693a9cbfaaf241eb08be25bb190a588faff7841773d",
"preBlockHash": "0xb4bdbad327065225a44fddac74bac9f6345d3b87c651876adafc0f18ec4f41e5"
}]