商户需提供的回调接口
Webhook 回调
Webhook 回调是一种机制,当特定事件发生时,WaaS 将主动向商户系统发送通知, 用于异步告知某些操作的结果或状态变化。商户需提供回调 URL,并实现相关功能以接收和处理回调。
示例场景
以下为常见的回调流程示例:
1. 存币通知流程
- 商户向 WaaS 的存币 API 提交请求。
- WaaS 处理存币请求。
- WaaS 调用商户提供的回调 URL,通知存币结果。
- 商户接收通知并更新状态。
2. 提币通知流程(无二次确认)
- 商户向 WaaS 的提币 API 提交请求。
- WaaS 处理提币请求。
- WaaS 调用商户的回调 URL,通知提币结果(成功或失败)。
- 商户接收通知并更新状态。
对于需要二次确认的提币流程,回调可能会包含额外的确认步骤,请确保回调 URL 能正确处理所有场景通知。
回调接口具有以下功能:
- 通知商户存币单的生成。
- 在提币单执行前请求商户确认提币信息。
- 通知商户用户钱包地址的变更。
- 通知商户提币单的执行结果。
注意:
回调接口用于接收 WaaS 发送的通知,商户需向 WaaS 提供回调地址,通过回调机制接收事件的处理结果。所有请求需要使用与其他接口相同的 API-Key 机制 进行验证,通知内容在发送前通过 RSA 加密,密文为 Base64 格式。
接口范例
- 接口名称:
https://xxxx/api/v1/uu/notify
请求方法
POST
请求头
名称 | 类型 | 必填 | 示例值 | 说明 |
---|---|---|---|---|
Content-Type | string | 是 | application/x-www-form-urlencoded | 请求格式,表单编码格式。 |
X-API-KEY | string | 是 | your-api-key | 授权密钥,用于身份验证。 |
请求体参数
以下为请求体的参数模板:
属性名 | 类型 | 必填 | 示例值 | 说明 |
---|---|---|---|---|
tenantUserId | String | 是 | tenant123 | 商户用户标识。 |
requestUUID | String | 是 | 2137890 | 请求的唯一标识符。 |
trackingId | String | 是 | track-4567 | 订单追踪 ID。 |
type | Integer | 是 | 2 | 回调类型(见下方枚举)。 |
business | Integer | 是 | 0 | 所属租户类型(暂无实际控制作用) |
callBackId | String | 否 | 12345 | 回调 ID。 |
toAddress | String | 否 | TUekuiBgdk... | 目标地址。 |
chainName | String | 否 | TRON | 区块链名称。 |
txId | String | 否 | 22e1c72076... | 交易 ID。 |
symbol | String | 否 | USDT | 货币符号。 |
amount | String | 否 | 0.5 | 金额。 |
txIndex | Integer | 否 | 20 | 交易索引。 |
tag | String | 否 | WITHDRAW_SUCCESSS | 标签。 |
fromAddress | String | 否 | TUekuiBgdk... | 源地址。 |
newAddress | String | 否 | TUekuiBgdk... | 新地址(仅在类型为 4 时使用)。 |
riskLevelFrom | Integer | 否 | 15 | 存币来源地址风险评分(类型为 1 时存在)。 |
riskLevelTo | Integer | 否 | 15 | 存币目标地址风险评分(类型为 1 时存在)。 |
回调类型枚举
以下为 type
参数的枚举值及其说明:
类型值 | 名称 | 描述 |
---|---|---|
0 | NOTIFY_UNKNOWN | 未知通知类型,无需处理。 |
1 | NOTIFY_DEPOSITED | WaaS 通知商户存币单的生成,需解析参数并确认结果。 |
2 | NOTIFY_REQUEST_WITHDRAW | 请求商户确认提币单的详细信息(用于二次确认)。 |
3 | NOTIFY_WITHDRAW | WaaS 通知商户提币单的执行结果。 |
4 | NOTIFY_ADDRESS | 通知用户地址变更,需解析新地址(newAddress )。 |
5 | NOTIFY_INVALID_ADDRESS | 提币失败(地址无效),需确认结果并响应。 |
6 | NOTIFY_NOT_ENOUGH_MONEY | 提币失败(余额不足),需确认结果并响应。 |
7 | NOTIFY_NOT_ENOUGH_HOT_MONEY | 提币失败(gas 不足),需确认结果并响应。 |
请求示例
响应参数
属性名 | 类型 | 必填 | 示例值 | 说明 |
---|---|---|---|---|
requestUUID | String | 是 | 2137890 | 请求的唯一标识符 |
userId | String | 是 | 1308764 | 租户ID |
createBy | String | 是 | “ | 创建者信息,无实际控制作用 |
message | String | 是 | “ | 信息描述,无实际控制作用 |
apiKey | String | 是 | “ | apiKey |
errCode | int | 是 | “ | 错误码,0表示成功,其它值表示失败 |
data | String | 是 | “ | 用RSA公钥加密后的密文数据 |
以下为响应中 data 参数说明:
属性名 | 类型 | 示例值 | 说明 |
---|---|---|---|
requestUUID | String | 2137890 | 请求的唯一标识符,用于唯一标记请求。 |
userId | Integer | 1 | 用户 ID,标识触发事件的具体用户。 |
trackingId | String | track-4567 | 订单追踪 ID。 |
address | String | toAddress123 | 目标地址,表示操作的目标地址。 |
tenantUserId | String | tenant123 | 商户用户标识,用于区分商户用户。 |
chainName | String | TRON | 区块链名称,标识交易所在的区块链。 |
symbol | String | USDT | 货币符号,标识交易所涉及的代币或货币。 |
callBackId | String | 12345 | 回调 ID,标识当前回调事件的 ID。 |
amount | String | 0.5 | 金额,表示交易或操作的具体数额。 |
type | Integer | 2 | 回调类型,详细说明见回调类型枚举值。 |
响应示例
成功处理请求: