接口参考总览
本章是商户 API 的接口参考。所有业务接口共用同一套加密 / 签名 / 防重放协议(见协议规范),本页汇总接口清单、公共约定与枚举值;各接口的参数与响应字段详见对应子页。
接口一览
| 分组 | 基址 |
|---|---|
| 业务接口 | https://api.anonypay.io/api/merchant/ |
| 公共接口 | https://api.anonypay.io/api/common/ |
| 接口 | 路径 | 需要 token | 请求体加密/签名 | 说明 |
|---|---|---|---|---|
| getToken | POST /api/merchant/getToken | 否(md5 鉴权) | 否(响应仍是加密信封) | 用 APP-ID + secret 换取 ANONY-TOKEN |
| createAddress | POST /api/merchant/createAddress | 是 | 是 | 创建收款地址(userOrder 幂等) |
| createWithdrawOrder | POST /api/merchant/createWithdrawOrder | 是 | 是 | 创建提现单(userOrder 幂等) |
| merchantInfo | POST /api/merchant/merchantInfo | 是 | 是 | 查询商户信息与各币种余额 |
| getDeposits | POST /api/merchant/getDeposits | 是 | 是 | 分页查询充值记录 |
| checkWithdrawOrder | POST /api/merchant/checkWithdrawOrder | 是 | 是 | 按 userOrder 查询提现单状态 |
| selfcheck | POST /api/merchant/v2/selfcheck | 是 | 是 | 上线自检探活,只读、可反复调用,原样回显请求内容 |
| 公共接口 | /api/common/* | 否 | 否(明文) | getCurrencies / isAddress / checkTransfer / generateAddresssQrCode |
实现细节
getToken签发的 token 存于服务端,采用滑动过期 8 小时、绝对上限 24 小时的策略;收到tokenExpired时重新获取即可,无需固定周期刷新。- 业务接口在服务端还会校验来源 IP 白名单,不在白名单内会返回纯文本
Oops(而非 JSON 信封),排查见常见问题排查。
公共说明
- 所有接口均为
POST(仅generateAddresssQrCode为GET)。 - 除
getToken与公共接口外,所有接口的请求体为业务 JSON 的加密密文,并需带全套签名头(ANONY-APP-ID/ANONY-TOKEN/ANONY-TIMESTAMP/ANONY-NONCE/ANONY-SIGN),构造方法见协议规范。 - 请求体大小有平台上限(默认 128KB),超出会被直接拒绝。
- 各接口文档中的“响应字段”均指验签并解密后
data内的业务字段。 - 建议对接前先完成上线自检,确认加密 / 签名 / 防重放链路整体正确。
统一响应信封
所有业务接口(含 getToken)的 HTTP 响应体是同一个 JSON 信封:
{ "code": 10000, "data": "<base64 密文>", "message": "success" }code == 10000表示成功;data是 OAEP 加密的 base64 密文,必须先验签、再解密才能得到业务 JSON。code == 9999表示失败:message为失败原因,data为空。错误码清单见错误码。- 响应头带
ANONY-TIMESTAMP/ANONY-NONCE/ANONY-SIGN,验签输入为 canonical 串ts + "\n" + nonce + "\n" + data。 - 解析外层 JSON 请使用标准 JSON 库:响应体里
/可能被转义为\/,标准库会自动还原,不要手写字符串切割。
处理下行的完整四步(解析信封 → 校验时间窗/nonce → 验签 → 解密)见协议规范;SDK 已封装为 verifyResponse / verify + decrypt,见SDK 使用。
枚举值
地址类型 addressType
| 值 | 说明 |
|---|---|
trx | TRON |
btc | Bitcoin(预留 / 待接入,正式公告前不要在生产收银台开放) |
solana | Solana |
eth_bnb | ETH / BNB |
ton | TON |
实现细节
eth_bnb 生成的是 ETH 与 BNB 链共用的收款地址,两条链的到账都会按各自币种回调。
提现币种 currency(13 种)
trx trx.usdt
eth eth.usdt eth.usdc
solana solana.usdt solana.usdc
bnb bnb.usdt bnb.usdc
ton ton.usdt各币种的费率与最低充提金额可通过公共接口 getCurrencies 查询。
TRON-USDC 充值已关闭
平台不支持 TRON 链 USDC(trx.usdc)充值:请勿向平台生成的 TRON(trx)收款地址转入 USDC——此类到账不会入账、不会触发回调,资金无法自动到达商户余额。提现币种枚举中也不包含 trx.usdc。请引导你的用户在 ETH / Solana / BNB 链上使用 USDC。
提现类型 withdrawType(2 种)
| 值 | 说明 |
|---|---|
normal | 普通提现 |
financialConfirmation | 财务确认提现(需财务侧确认后才执行) |
实现细节
financialConfirmation 要求商户已绑定财务审核的 Telegram 账号,否则报 auditorTelegramNotBound;平台还会按商户配置的提现策略校验 withdrawType 是否允许。详见创建提现单。
金额传递建议
金额类字段(amount / fee / balance 等)建议以字符串传递与解析,避免浮点数精度问题:
- 上行:
{"amount": "100.5"}而不是{"amount": 100.5}。 - 下行:平台返回的金额字段均为字符串,请用 decimal / BigDecimal 等精确类型处理,不要直接转 float。
相关页面
- 密钥与凭据 —— 对接所需的 4 个值及密钥格式
- 协议规范 —— 加密 / 签名 / 防重放的逐字节规范
- 回调机制 —— 充值到账与提现状态回调
- 错误码 ——
code=9999时的message清单 - 常见问题排查
支持的链与币种对照表
创建收款地址时按下表传入 addressType;提现时 currency 使用对应的 symbol。
| 公链 | createAddress 传入 addressType | 收款币种 | 提现 currency |
|---|---|---|---|
| TRON | trx | TRX、USDT | trx、trx.usdt |
| Ethereum | eth_bnb(与 BSC 共用地址) | ETH、USDT、USDC | eth、eth.usdt、eth.usdc |
| BSC (BNB Chain) | eth_bnb(与 Ethereum 共用地址) | BNB、USDT、USDC | bnb、bnb.usdt、bnb.usdc |
| Solana | solana | SOL、USDT、USDC | solana、solana.usdt、solana.usdc |
| TON | ton | TON、USDT | ton、ton.usdt |
| Bitcoin | btc(预留) | 待接入 | 待接入 |
更多链与币种持续接入中
各币种的费率与最低金额以 getCurrencies 实时返回为准;新链上线会通过公告发布。注意 TON 链只有 USDT;TRON 链 USDC 充值已关闭(见本页顶部警告)。