🚀 快速开始
OpenCryptoPay 是一个非托管的加密货币支付网关,支持 USDT (TRC-20 / BEP-20 / Polygon / ERC-20 / Arbitrum)。 资金直接到账商户自己的冷热钱包,具有防假充值、金额尾数防撞锁定与毫秒级扫链撮合机制。
网关基础地址 (Base URL)
生产正式网关
https://pay.2fa.blue
POST
创建支付订单
/api/v1/order/create
商户后台调用该接口创建订单,系统自动分配专属应付金额(含微小浮动尾数防撞单)并返回收银台支付链接 pay_url。
请求参数 (Request Body - JSON)
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| out_trade_no | string | 是 | 商户系统的唯一订单号(如 ORDER_20261102_001) |
| amount | number | 是 | 原始充值金额(单位:USDT,例如 10.00) |
| network | string | 否 | 支付公链:TRC20 (默认波场), BEP20 (BSC), POLYGON, ERC20 |
| notify_url | string | 否 | 支付完成后的异步通知 Webhook 地址 |
| redirect_url | string | 否 | 用户支付成功后前端跳转页面 |
cURL 调用示例
Bash / cURL
curl -X POST https://pay.2fa.blue/api/v1/order/create \
-H "Content-Type: application/json" \
-d '{
"out_trade_no": "ORDER_1001",
"amount": 10.00,
"network": "TRC20",
"notify_url": "https://your-shop.com/api/notify",
"redirect_url": "https://your-shop.com/order/success"
}'
响应结果 (Response - JSON)
200 OK
{
"code": 200,
"message": "Order created successfully",
"data": {
"trade_no": "PAY1793608327859ED99B4",
"out_trade_no": "ORDER_1001",
"network": "TRC20",
"token": "USDT",
"amount": 10,
"actual_amount": 10.01,
"receiver_address": "TG3XXyExBkPp9nzdajDZsozEu4B5U2U2AZ",
"status": "PENDING",
"pay_url": "https://pay.2fa.blue/checkout.html?trade_no=PAY1793608327859ED99B4",
"expire_at": 1793610127859
}
}
GET
查询订单状态
/api/v1/order/status/:trade_no
通过网关系统订单号 trade_no 查询订单当前支付状态与链上交易详情。
响应示例
{
"code": 200,
"data": {
"trade_no": "PAY1793608327859ED99B4",
"status": "PAID",
"actual_amount": 10.01,
"tx_id": "8f3e2b9c7d4a1...",
"paid_at": 1793608400000
}
}
🔔 Webhook 异步回调规范与验签
当链上转账确认入账后,系统会向商户的 notify_url 发起 POST 请求。
商户必须校验签名,确认参数未被篡改,入账成功后必须返回文本 SUCCESS。
回调参数签名算法
1. 排除 sign 字段,将剩余所有非空参数按 ASCII 字母升序 字典排序并用 & 拼接(如 amount=10&status=PAID...)。
2. 使用商户通信密钥(API_AUTH_TOKEN)进行 HMAC-SHA256 签名计算。
PHP 验签示例
PHP
<?php
$rawBody = file_get_contents('php://input');
$data = json_decode($rawBody, true);
$sign = $data['sign'];
unset($data['sign']);
// 1. 字典序排列
ksort($data);
$signStr = urldecode(http_build_query($data));
// 2. HMAC-SHA256
$calculated = hash_hmac('sha256', $signStr, 'secret_token_123456');
if (hash_equals($calculated, $sign) && $data['status'] === 'PAID') {
// 处理你的发货逻辑...
echo "SUCCESS"; // 必须输出纯文本 SUCCESS
} else {
http_response_code(400);
echo "FAIL";
}
🛒 易支付 (EPay) 协议网关对接
兼容市面上所有发卡/商城开源系统(独角数卡、WordPress WooCommerce 易支付插件、WHMCS、OneAPI)。
| 网关接口地址 | https://pay.2fa.blue/submit.php |
| 商户 ID (PID) | 1001(或任意数字) |
| 商户密钥 (Key) | 你的 API_AUTH_TOKEN(后台中控设置) |