SANDBOX

沙箱环境(测试网)

在真实测试网(Sepolia、Amoy、TRON Nile、Solana devnet 等)上完整联调充值、归集、提现与回调,全程使用无价值测试币,不产生任何账单。

先读这一条:测试币和真钱的地址完全相同

EVM 地址跨网络完全相同——同一个用户在 ETH 主网与 ETH_SEPOLIA 拿到的是 同一个 0x 地址。判断一笔资产是真钱还是测试币, 唯一可靠依据是接口与回调中的 network 字段,绝不能凭地址。 商户系统必须按 network === "MAINNET" 校验后才给业务用户入账。

沙箱是什么

  • 一条测试网 = 一条独立的链:测试网与主网是平级的两条链 (如 ETHETH_SEPOLIA),充值地址、回调、查询接口的用法与主网完全一致—— 测试通过后把 chainCode 换成主网值即可无缝切换。
  • 完全不计费:测试网上的建址、充值、提现、回调均不产生账单,用量靠开通审批控制。
  • 测试币无价值:测试网资产仅用于联调,不可提现为真实资产。

如何申请开通

测试网采用「自助申请 + 平台审批」开通:

  1. 在派付管理后台 → 沙箱环境 → 开通申请提交申请,选择应用与目标测试网(可附申请说明);
  2. 平台审批通过后,该应用即开通所选测试网,/support/chains 里即可看到对应链;
  3. 同一应用对同一测试网只允许一条进行中的申请;被驳回后可修正原因重新申请。

查询已开通的测试网

GET /api/v1/wallet/support/chains 新增 network 查询参数,沙箱侧只拉测试网:

# 只拉当前应用已开通的测试网(签名算法见 /docs/api/auth)
REQ_PATH='/api/v1/wallet/support/chains?network=TESTNET'
# ...按 /docs/api/auth 生成 4 个签名 header 后:
curl "https://api.pqpa.com$REQ_PATH" \
  -H "X-Api-Key:   $API_KEY" \
  -H "X-Timestamp: $TS" \
  -H "X-Nonce:     $NONCE" \
  -H "X-Signature: $SIG"

network 取值

MAINNET
string required
主网,真实资产。只有此值的事件才应触发业务入账。
例: MAINNET
TESTNET
string optional
公共测试网(Sepolia / Amoy / TRON Nile / BTC testnet 等),测试币无价值。
例: TESTNET
DEVNET
string optional
开发网(Solana devnet 等),比 testnet 更靠近开发、可能被重置。
例: DEVNET
REGTEST
string optional
本地回归网(BTC regtest 等),平台内部使用,一般不对商户开放。
例: REGTEST

如何领测试币

测试网水龙头在管理后台 → 沙箱环境 → 水龙头按链展示,共三类:

  • 外链引导:跳转官方/社区水龙头页面自助领取(部分需要 GitHub 等账号登录,页面上会注明)。 领取后可在水龙头页查目标地址的链上实时余额确认到账。
  • 平台代领:对开放了接口的水龙头(XLM friendbot、XRP faucet、Solana devnet airdrop 等), 在后台直接发起、平台代为领取,结果在「领取记录」页跟踪。外部水龙头普遍限流,失败请稍后重试。
  • 平台币池:平台维护的测试币发放池按额度发放(单次发放额与单应用每日上限以页面标注为准)。

回调里的 network 字段

充值 / 提现 / 归集三类回调均携带 network 字段,与 /support/chains 响应里的同名字段同一口径:

{
  "event": "recharge",
  "chainId": 42,
  "network": "TESTNET",   // ← 判定真钱/测试币的唯一依据
  "address": "0xab12...", // 与该用户主网充值地址完全相同!
  "amount": "100.00",
  "txStatus": "SETTLED"
}

商户侧改造点

如果你的回调处理逻辑写在 network 字段上线之前,请尽快补上校验: 只有 network === "MAINNET" 的事件才触发真实入账; 测试网事件建议单独落表或打标,用于联调对账。字段完整说明见 Payload 与验签

下一步