Webhook
- WaaS 回调机制总览
- 回调接入准备说明
- 回调数据解密实现
- 回调枚举类型说明
- 公共请求参数
- Webhook API
请求示例
加密操作指南
i. 加密流程步骤说明
以下是加密操作的步骤:
- 准备 业务请求参数 。(所有字段定义见加密前请求参数部分)
- 序列化为 JSON 字符串。
- 使用 WaaS 提供的 RSA公钥 加密 JSON 数据。
- 对加密结果进行 Base64 编码。
ii. 加密代码实例
以下是实现加密的代码示例:
Copy
class EncryptionExample {
public static void main(String[] args) {
try {
// ===================== 1. 准备业务参数 =====================
Map<String, Object> requestParams = new HashMap<>();
requestParams.put("tenantUserId", "tenant_001");
requestParams.put("chainName", "ETH");
requestParams.put("symbol", "USDT");
// ===================== 2. JSON序列化 =====================
// 使用 JSON 工具类进行序列化,具体实现可参考相关工具类中的示例代码。
String jsonData = JsonUtils.toJson(requestParams);
// ===================== 3. RSA公钥加密 =====================
// 使用WaaS提供的公钥
String publicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQ...";
// 使用 RSA 工具类进行加密,具体实现可以参考相关工具类中的示例代码。
byte[] encryptedData = RSAUtils.encryptByPublicKey(
jsonData.getBytes(StandardCharsets.UTF_8),
publicKey
);
// ===================== 4. Base64编码 =====================
// 使用Base64工具类进行编码,具体实现可以参考相关工具类中的示例代码。
String base64Data = Base64Util.encodeByte(encryptedData);
// ===================== 5. 准备HTTP请求 =====================
// 创建HTTP请求头
HttpHeaders headers = new HttpHeaders();
headers.add("X-API-KEY", "MERCHANT_123456"); // 商户身份凭证
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); // 表单格式
// 封装请求体
MultiValueMap<String, String> body = new LinkedMultiValueMap<>();
body.add("data", base64Data); // 参数名必须为"data"
// ===================== 6. 发送API请求 =====================
// 创建并配置RestTemplate
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new FormHttpMessageConverter());
// 发送请求并获取响应
APIResult response = restTemplate.postForObject(
"https://waas2-out-api.powersafe-rel.cc/api/v1/api/user/getUserAddress",
new HttpEntity<>(body, headers),
APIResult.class
);
// 处理响应,具体内容可参考响应示例。
System.out.println("\nAPI响应结果:");
System.out.println(response);
} catch (Exception e) {
System.err.println("\n处理过程中发生错误: " + e.getMessage());
e.printStackTrace();
}
}
}
助手
Responses are generated using AI and may contain mistakes.