开发指南
发送第一个请求
调用获取充值地址,为一个玩家获取指定链的地址。你需要 curl、openssl 和 python3。
1. 填入真实环境材料
将全部 REPLACE_... 替换为平台提供的配置和你的玩家标识。玩家标识建议只使用字母、数字、下划线或连字符,避免路径转义问题;完整限制见字段规则。
export BASE_URL='https://REPLACE_BASE_URL'
export ACCESS_KEY='REPLACE_ACCESS_KEY'
export HMAC_SECRET='REPLACE_HMAC_SECRET'
export PLAYER_ID='REPLACE_PLAYER_ID'
export CHAIN_ID='REPLACE_REGISTERED_CHAIN_ID'2. 用同一份正文签名和发送
METHOD='POST'
REQUEST_URL="${BASE_URL%/}/v1/addresses"
REQUEST_PATH="$(python3 -c 'import sys, urllib.parse; print(urllib.parse.urlsplit(sys.argv[1]).path)' "$REQUEST_URL")"
QUERY=''
BODY="$(python3 -c 'import json, sys; print(json.dumps({"playerId": sys.argv[1], "chainId": sys.argv[2]}, ensure_ascii=False, separators=(",", ":")), end="")' "$PLAYER_ID" "$CHAIN_ID")"
TIMESTAMP="$(date +%s)"
PAYLOAD="${METHOD}|${REQUEST_PATH}|${TIMESTAMP}|${QUERY}|${BODY}"
SIGNATURE="$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$HMAC_SECRET" -hex | awk '{print $NF}')"
curl -sS -X "$METHOD" "$REQUEST_URL" \
-H "Content-Type: application/json" \
-H "X-Access-Key: $ACCESS_KEY" \
-H "X-Timestamp: $TIMESTAMP" \
-H "X-Signature: $SIGNATURE" \
--data-binary "$BODY" \
--write-out '\nHTTP %{http_code}\n'3. 保存返回的四个字段
成功时为 HTTP 200,正文直接是地址对象,没有额外的 data 包装:
{
"address": "REPLACE_RETURNED_ADDRESS",
"chainName": "REPLACE_RETURNED_CHAIN_NAME",
"chainId": "REPLACE_RETURNED_CHAIN_ID",
"tokenContract": "REPLACE_RETURNED_USDT_CONTRACT"
}保存四个字段后,用 address 生成充值二维码,并同时展示网络与资产名称。地址原样保存,不强制转为小写。下一步接入充值查询与入账。
预期返回开放链的地址和登记资产。连接失败先查地址与证书;401 查签名;422 先查玩家标识、链 ID 和请求字段,再请平台核对地址服务。所有失败的处理规则见错误码。