API 对接文档

Epusdt 是一个多链 USDT/USDC 支付网关,支持 Ethereum、BSC、Arbitrum、Polygon、Tron、Solana 六条链。

目录 1. 快速开始 2. 认证方式 3. 签名算法 4. 创建订单 5. 查询支付状态 6. 支付回调通知 7. 支持的网络 8. 错误码

1. 快速开始

对接流程:

注册商户(支付 $5 激活费) → ② 获得 merchant_id + api_key → ③ 调用 API 创建订单 → ④ 用户支付 → ⑤ 接收回调通知

Base URL:

https://usdt.btcshop.vip

2. 认证方式

所有订单创建请求使用 签名认证。请求体中包含 signature 字段,使用您的 api_key 计算得出。

3. 签名算法

签名规则:将所有请求参数(不含 signature,不含空值)按 key 字母排序,拼接为 key=value&key=value 格式,末尾追加 api_key,取 MD5 值。

示例(Python):

import hashlib

params = {
    "order_id": "ORDER_001",
    "currency": "usd",
    "token": "usdt",
    "network": "ethereum",
    "amount": 10.0,
    "notify_url": "https://your-site.com/notify",
    "name": "Test"
}

api_key = "your_api_key_here"

# 1. 按 key 排序,拼接非空值
sorted_str = "&".join(
    f"{k}={v}" for k, v in sorted(params.items())
    if v is not None and str(v) != ""
)

# 2. 追加 api_key,取 MD5
signature = hashlib.md5(
    (sorted_str + api_key).encode()
).hexdigest()

params["signature"] = signature

示例(PHP):

$params = [
    'order_id'   => 'ORDER_001',
    'currency'   => 'usd',
    'token'      => 'usdt',
    'network'    => 'ethereum',
    'amount'     => 10.0,
    'notify_url' => 'https://your-site.com/notify',
    'name'       => 'Test',
];

$apiKey = 'your_api_key_here';

// 1. 按 key 排序
ksort($params);

// 2. 拼接
$str = '';
foreach ($params as $k => $v) {
    if ($v === '' || $v === null) continue;
    $str .= ($str ? '&' : '') . "$k=$v";
}

// 3. 追加 key,MD5
$signature = md5($str . $apiKey);

4. 创建订单

POST /payments/gmpay/v1/order/create-transaction

请求参数

参数类型必填说明
order_idstring必填商户订单号(≤32字符,唯一)
currencystring必填法币代码,如 usd, cny
tokenstring必填支付币种:usdtusdc
networkstring必填区块链网络(见下方网络表)
amountfloat必填订单金额(>0.01)
notify_urlstring必填支付成功回调地址
signaturestring必填MD5 签名
redirect_urlstring可选支付后跳转地址
namestring可选订单名称/描述

成功响应

{
  "status_code": 200,
  "message": "success",
  "data": {
    "trade_id": "202604131776067430115005",
    "order_id": "ORDER_001",
    "amount": 10,
    "currency": "USD",
    "actual_amount": 10.01,
    "receive_address": "0x6843...5651",
    "token": "USDT",
    "expiration_time": 1776068030,
    "payment_url": "https://usdt.btcshop.vip/pay/checkout-counter/..."
  }
}

payment_url — 将用户重定向到此 URL 完成支付。

5. 查询支付状态

GET /pay/check-status/:trade_id

{
  "status_code": 200,
  "data": {
    "trade_id": "202604131776067430115005",
    "status": 2
  }
}
status 值含义
1待支付
2已支付
3已过期

6. 支付回调通知

订单支付成功后,系统会向您的 notify_url 发送 POST 请求(最多重试 5 次):

POST https://your-site.com/notify
Content-Type: application/json

{
  "trade_id": "202604131776067430115005",
  "order_id": "ORDER_001",
  "amount": 10.0,
  "actual_amount": 10.01,
  "token": "USDT",
  "block_transaction_id": "0xabc...",
  "signature": "md5_signature",
  "status": 2
}
重要:收到回调后请验证 signature 签名,确认后返回 HTTP 200 + 内容 ok。否则系统将重试回调。

7. 支持的网络

network 值链名Gas 费确认时间
ethereumEthereum 主网$2-10~15秒
bscBNB Smart Chain<$0.05~3秒
arbitrumArbitrum One<$0.1~1秒
polygonPolygon<$0.01~2秒
tronTron (TRC20)<$1~3秒
solanaSolana<$0.01~0.4秒

8. 错误码

status_codemessage说明
400signature verification failed签名校验失败
400order already existsorder_id 重复
400no available wallet address该网络暂无可用钱包
400pay amount error金额不合法
500server error服务端错误