UU 收款
UU 收款
API 文档帮助中心进入控制台
CTRL K
API 文档帮助中心进入控制台

开始接入

接入概览快速开始请求签名与鉴权

接口参考

用户与充值地址订单与查询充值回调提现与退款

排查与处理

错误与重试

请求签名与鉴权

使用服务端密钥,为每一次 API 请求生成独立签名。

必须携带的请求头

请求头含义
X-API-Key平台签发的 API Key
X-TimestampUnix 秒级时间戳,允许与服务器相差 300 秒以内
X-Nonce每次请求唯一的随机字符串,可使用 UUID
X-SignatureHMAC-SHA256 结果的十六进制字符串
Content-Type有 JSON 请求体时设置为 application/json

登录控制台获得的会话不能代替商户 API 签名。

签名原文

按以下顺序拼接,字段之间使用英文句点 .:

timestamp + "." + method + "." + escaped_path + "." + nonce + "." + raw_body
  • method 使用大写,例如 POST、GET。
  • escaped_path 是经过 URL 编码的路径,包含 /v1,不含域名和查询字符串。
  • raw_body 必须与实际发送的请求体完全一致,空格、字段顺序和换行都会改变签名。
  • 无请求体的 GET 请求使用空字符串,最后一个句点仍需保留。
  • HMAC 密钥使用签发的 API Secret 原文,不要预先做哈希或十六进制解码。
import {createHmac} from 'node:crypto';
 
export function signRequest(secret, timestamp, method, url, nonce, body = '') {
  const path = new URL(url).pathname;
  const message = `${timestamp}.${method.toUpperCase()}.${path}.${nonce}.${body}`;
  return createHmac('sha256', secret).update(message, 'utf8').digest('hex');
}

GET 请求示例

查询地址时,请求 URL 可以包含 ?asset=BEP20-USDT,签名路径只取问号前的部分:

请求:GET /v1/customers/用户UUID/deposit-address?asset=BEP20-USDT
签名路径:/v1/customers/用户UUID/deposit-address
请求体:空字符串

上面的“用户UUID”需要替换为创建用户接口返回的 customer_id。

重试与防重放

平台会记录通过验签的 Nonce,重复使用会返回 replayed request。每次重试都要生成新的时间戳、Nonce 和签名;业务编号或幂等键保持不变。

服务器请保持时间同步。遇到鉴权错误时,先检查请求原文,再检查密钥、商户状态与时钟,不要在日志中输出 API Secret。

快速开始

上一篇

用户与充值地址

下一篇

本页内容

必须携带的请求头签名原文GET 请求示例重试与防重放