Webhook
WaaS 回调机制总览
深入了解 WaaS 平台的 Webhook 回调机制,包括工作原理、安全实现和各类回调场景处理流程
什么是 Webhook 回调?
Webhook 回调是一种事件驱动的通信机制,当特定事件发生时,WaaS 平台会主动向商户系统发送通知,用于异步告知操作结果或状态变化。这种机制让商户能够实时获知区块链操作的结果,无需主动轮询查询。
核心特点
双向认证机制
通过 API-Key 机制确保回调来源可信
端到端加密
通知内容使用 RSA 加密 + Base64 编码
实时推送
事件完成后立即触发通知,无延迟
多场景覆盖
支持存币、提币、地址更换等关键场景
回调处理流程
- 事件发生:用户在 WaaS 平台发起存币、提币等操作
- WaaS处理:平台处理交易并确认区块链状态
- 通知构建:WaaS 生成通知数据并进行安全处理:
- 使用商户私钥进行 RSA 加密
- 将加密结果转换为 Base64 格式
- 回调发送:WaaS 向商户注册的回调 URL 发送 HTTP POST 请求
- 商户处理:
- Base64 解码接收到的数据
- 使用商户公钥进行 RSA 解密
- 解析 JSON 格式的业务数据
- 根据业务类型进行相应处理
- 响应返回:商户处理完成后,返回加密的响应数据
示例场景
1. 存币通知流程
1. 用户存币
→
2. 区块链确认
→
3. WaaS检测
→
4. 商户处理
关键步骤:
- 用户向商户地址存入加密货币
- 交易在区块链网络完成确认(通常需要多个区块确认)
- WaaS 系统检测到成功交易
- WaaS 调用商户回调 URL,发送 NOTIFY_DEPOSITED 类型通知
- 商户验证交易并更新用户账户余额
2. 提币通知流程(无二次确认)
1. 商户发起
→
2. WaaS处理
→
3. 区块链广播
→
4. 交易确认
→
5. 商户处理
关键步骤:
- 商户系统通过 API 发起提币请求
- WaaS 处理提币请求并进行安全审查
- WaaS 向区块链网络广播提币交易
- 交易被区块链网络确认
- WaaS 发送 NOTIFY_WITHDRAW 通知提币成功
- 商户接收通知并更新订单状态
3. 提币流程(带二次确认)
1. 商户系统发起提币申请
→
2. WaaS接收后主动回调商户
→
3. 商户响应提币具体详情信息
→
4. 执行提币上链
→
5. 结果通知商户
关键步骤:
- 商户系统通过 API 发起提币请求,携带callbackId
- 接收到请求后,WaaS会主动回调商户提供的回调URL(NOTIFY_REQUEST_WITHDRAW)
- 接收到请求后,WaaS返回一个成功的响应,然后WaaS主动调用商户提供的回调URL(枚举类型为NOTIFY_REQUEST_WITHDRAW,携带callbackId作为参数)
- 商户的回调接口被请求后,根据callbackId向WaaS响应返回提币的具体信息,包括:提币金额、目标地址、币种、链类型…
- WaaS在收到响应后,将执行提币上链。
- 上链成功后,WaaS会再次回调商户(NOTIFY_WITHDRAW),通知其提币结果。