API 对接概述
Elaypay API 专为服务端对服务端通信设计,使用 HMAC-SHA256 签名认证。当您的后端系统需要以编程方式与 Elaypay 交互时(例如发起转账、查询钱包余额),使用此 API。
| 方面 | 说明 |
|---|---|
| 认证方式 | HMAC-SHA256 签名 |
| 适用场景 | 服务端对接、后端系统 |
| 凭证 | API 密钥 + 密钥对(长期) |
| 传输 | HTTPS |
| 会话 | 无状态(每请求签名) |
工作原理
每个 API 请求必须包含四个自定义头,共同证明调用方拥有有效的 API 密钥并知道对应的密钥对。服务器在处理请求之前会验证这些头。
必需请求头
快速示例
以下是一个经过认证的 API 请求示例:
curl -X POST "https://api.elaypay.app/api/v1/transfer/command/create" \
-H "Content-Type: application/json" \
-H "X-Api-Key: sk_live_abc123def456" \
-H "X-Signature: K7gNU3sdo+OL0wNhqoVWhr3g6s1xYv72ol/pe/Unols=" \
-H "X-Timestamp: 1709337600" \
-H "X-Nonce: 550e8400-e29b-41d4-a716-446655440000" \
-d '{"sourceWalletId":"w_123","targetWalletId":"w_456","amount":"100.00","currency":"USD"}'
X-Signature 中的签名不是静态令牌 -- 它根据请求方法、路径、请求体、时间戳和 nonce 对每个请求重新计算。这意味着即使请求被截获,也无法被重放或篡改。
认证流程概览
┌──────────────┐ ┌──────────────┐
│ 您的服务器 │ │ Elaypay │
└──────┬───────┘ └──────┬───────┘
│ │
│ 1. 构建规范消息 │
│ (method + path + timestamp + │
│ nonce + SHA256(body)) │
│ │
│ 2. 使用 HMAC-SHA256(secret) 签名 │
│ │
│ 3. 发送带 4 个认证头的请求 │
│ ──────────────────────────────────────────> │
│ │
│ 4. 服务器验证: │
│ - 密钥是否存在且有效 │
│ - 时间戳是否在 60 秒内 │
│ - Nonce 是否唯一 │
│ - 签名是否匹配 │
│ - IP 是否允许(如已配置) │
│ - 权限范围是否许可 │
│ │
│ <── 5. 响应(成功或错误) ─────────────────── │
└─────────────────────────────────────────────┘
后续步骤
- HMAC 认证 -- 签名计算的分步指南,包含 Bash 和 Node.js 的完整代码示例。
- API 参考与错误码 -- 错误码、API 密钥管理和技术规范。
- 错误处理 -- 响应信封格式和完整的错误码目录。
- 分页 -- 如何对大结果集进行分页。