Skip to content

商户信息 — merchantInfo

查询商户基本信息与各币种余额。常用于对账前拉取余额快照,或校验默认回调地址配置。

POST https://api.anonypay.io/api/merchant/merchantInfo

与其他业务接口一样:请求体为业务 JSON 的 OAEP 加密密文,并需携带全套签名头(ANONY-APP-ID / ANONY-TOKEN / ANONY-TIMESTAMP / ANONY-NONCE / ANONY-SIGN)。协议细节见 加密与签名协议,token 获取见 getToken

请求参数

无。请求体为空 JSON{}),照常加密、签名后发送。

响应字段(解密后)

字段类型说明
merchantIdint商户号
merchantNamestring商户名
callbackUrlstring默认回调地址
balancesarray各币种余额,元素为 { currency, balance }

balances 元素:

字段类型说明
currencystring币种符号(见 币种枚举
balancestring该币种余额

解密后的 data 示例:

json
{
  "merchantId": 10001,
  "merchantName": "示例商户",
  "callbackUrl": "https://merchant.example.com/anony/callback",
  "balances": [
    { "currency": "trx.usdt", "balance": "12345.678900" },
    { "currency": "eth.usdt", "balance": "0" }
  ]
}

金额精度

金额类字段建议按字符串处理,避免浮点精度问题。

调用示例

php
require 'AnonyV2Client.php';

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

$res = $client->post('merchantInfo', [], $token);
// $res['data'] 已自动验签+解密
$balances = $res['data']['balances'];
python
from anony_v2 import AnonyV2Client
import requests

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

req = c.build_request({}, token)  # 无参数,传空 JSON
r = requests.post(c.base_url + "merchantInfo", data=req["body"], headers=req["headers"])
body = r.json()
if body["code"] == 10000:
    data = c.verify_response(body["data"], r.headers["ANONY-TIMESTAMP"],
                             r.headers["ANONY-NONCE"], r.headers["ANONY-SIGN"])
    balances = data["balances"]
js
const { AnonyV2Client } = require('./anony_v2');

const c = new AnonyV2Client(appId, serverPubB64, merchantPrivB64);
const token = await c.getToken(secret);

const req = c.buildRequest({}, token); // 无参数,传空 JSON
const r = await fetch(c.baseUrl + 'merchantInfo', { method: 'POST', body: req.body, headers: req.headers });
const body = await r.json();
if (body.code === 10000) {
  const data = c.verifyResponse(body.data, r.headers.get('anony-timestamp'),
    r.headers.get('anony-nonce'), r.headers.get('anony-sign'));
  const balances = data.balances;
}

常见错误

现象说明
tokenExpiredtoken 失效,重新调用 getToken
signatureFailed签名/时间窗/nonce 问题,见 错误码
纯文本 Oops来源 IP 不在白名单

完整错误码列表见 错误码,联调问题见 排查指南

相关页面