Skip to content

查询充值记录 — getDeposits

分页查询本商户的充值到账记录,可按币种过滤。适用于对账、补单核查等场景。

项目
接口地址POST https://api.anonypay.io/api/merchant/getDeposits
请求体业务 JSON 的 RSA-OAEP 加密密文(见 加密与签名协议
请求头ANONY-APP-ID / ANONY-TOKEN / ANONY-TIMESTAMP / ANONY-NONCE / ANONY-SIGN
前置条件先调用 getToken 获取 ANONY-TOKEN

TRON 链 USDC 充值已关闭

向 TRON 地址转入 USDC 的充值已关闭:到账不入账、不回调,也不会出现在本接口的充值记录中。请勿引导用户在 TRON 链充值 USDC。其他链的 USDT/USDC 及各链原生币充值不受影响。

请求参数

字段类型必填说明
currencystring按币种符号过滤(如 trx.usdt);不传查全部
pageint页码,默认 1
limitint每页条数,默认 10,最大 100

币种符号枚举见 接口公共说明,也可通过公共接口 getCurrencies 动态获取。

limit 取值范围严格校验

limit 不传时默认 10;一旦传入,则 大于 100 或小于 1 都会直接报 limitError,不会自动截断到边界值。请在商户侧限制好取值范围。

响应

code == 10000 时,data 验签解密后为数组,每个元素的字段与充值到账回调完全一致:

字段类型说明
businessTypestring固定 deposit
txidstring链上交易哈希
addressstring收款地址
addressTypestring地址类型(当前开放:trx/solana/eth_bnb/tonbtc 为预留值)
fromAddressstring付款方地址
amountstring到账金额
currencystring币种符号
feestring手续费
apiOrderstring平台订单号
userOrderstring商户订单号(创建地址时传入)

解密后的 data 示例:

json
[
  {
    "businessType": "deposit",
    "txid": "d5b2...c91a",
    "address": "TXyz...abcd",
    "addressType": "trx",
    "fromAddress": "TAbc...wxyz",
    "amount": "100.000000",
    "currency": "trx.usdt",
    "fee": "1.000000",
    "apiOrder": "P20260708...",
    "userOrder": "A1001"
  }
]

金额类字段为字符串,请勿用浮点数直接比较,建议用 decimal 类库处理。

调用示例

以下示例均基于官方 SDK(见 SDK 总览),token 获取方式见 getToken

php
require 'AnonyV2Client.php';
$client = new AnonyV2Client($appId, $serverPublicKeyB64, $merchantPrivateKeyB64);
$token  = $client->getToken($secret);

// 查询 trx.usdt 第 1 页,每页 20 条
$res = $client->post('getDeposits', [
    'currency' => 'trx.usdt',
    'page'     => 1,
    'limit'    => 20,
], $token);
// $res['data'] 已自动验签+解密,为充值记录数组
foreach ($res['data'] as $item) {
    echo $item['userOrder'] . ' ' . $item['amount'] . ' ' . $item['currency'] . PHP_EOL;
}
python
from anony_v2 import AnonyV2Client
import requests

c = AnonyV2Client(app_id, server_pub_b64, merchant_priv_b64)
# token 获取见 getToken 页面示例

req = c.build_request({"currency": "trx.usdt", "page": 1, "limit": 20}, token)
r = requests.post(c.base_url + "getDeposits", data=req["body"], headers=req["headers"])
body = r.json()
if body["code"] == 10000:
    deposits = c.verify_response(body["data"], r.headers["ANONY-TIMESTAMP"],
                                 r.headers["ANONY-NONCE"], r.headers["ANONY-SIGN"])
    for item in deposits:
        print(item["userOrder"], item["amount"], item["currency"])
js
const { AnonyV2Client } = require('./anony_v2');
const c = new AnonyV2Client(appId, serverPubB64, merchantPrivB64);
const token = await c.getToken(secret); // Node ≥18

const req = c.buildRequest({ currency: 'trx.usdt', page: 1, limit: 20 }, token);
const r = await fetch(c.baseUrl + 'getDeposits', { method: 'POST', body: req.body, headers: req.headers });
const body = await r.json();
if (body.code === 10000) {
  const deposits = c.verifyResponse(body.data, r.headers.get('anony-timestamp'),
    r.headers.get('anony-nonce'), r.headers.get('anony-sign'));
  for (const item of deposits) {
    console.log(item.userOrder, item.amount, item.currency);
  }
}

常见错误

code != 10000message 为错误原因,data 为空。与本接口相关的常见错误:

message说明
limitErrorlimit 大于 100 或小于 1
tokenExpiredtoken 失效,重新调用 getToken
signatureFailed签名/时间窗/nonce 校验失败,见 排错指南
Oops(纯文本)来源 IP 不在白名单

完整错误码列表见 错误码

相关页面