统一路径前缀:/api/orders
接口地址: POST /api/orders/monitor
用于监听一个非系统地址是否收到指定金额的充值,成功后自动发起回调。场景:你不想用系统生成的地址,也想节约点下发U产生的费用,也能注意资金安全,你可以使用一个外部U地址(自己钱包地址),通过该功能,进行监听。收到钱后自定回调。
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
apikey | string | 是 | 商户的身份密钥 |
order_id | string | 是 | 商户自定义的订单号 |
address | string | 是 | 要监听的地址(TRON) |
amount | float64 | 是 | 要监听的充值金额 |
callback | string | 是 | 到账成功后的回调地址 |
start_time | string | 是 | 监听起始时间(格式:YYYY-MM-DD HH:mm:ss) |
end_time | string | 是 | 监听结束时间(格式:YYYY-MM-DD HH:mm:ss) |
只有在该时间区间内链上充值到账的订单才视为有效。 若在
end_time
前未收到充值,将自动标记为失败。
{ "message": "监听订单创建成功"}
接口地址: POST /api/orders/deposit
提示:用于生成一个系统地址充值订单,商户向指定地址充值后,系统检测到账后将回调通知并归集。
参数 | 类型 | 是否必填 | 说明 |
---|---|---|---|
apikey | string | 是 | 商户身份密钥 |
order_id | string | 是 | 商户订单号 |
amount | float64 | 是 | 充值金额 |
address | string | 是 | 商户自己的系统钱包地址 |
callback | string | 是 | 回调地址 |
系统充值订单有效期为 30 分钟,超时未到账将自动标记为失败。
{ "message": "充值订单生成成功", "address": "TXXXXXYYZZ", "amount": 100.29,"Ordersn":"xxxxxxxxx"}
返回的 address 是商户传入的系统钱包地址。
无论是哪种类型的订单,当成功到账后,系统将向 callback
地址发送如下 POST 请求:
{ "address": "Txxx", "amount": "100.29", "txid": "txid哈希", "timestamp": "Unix时间戳", "sign": "签名字符串"}
签名为 MD5(address=value&amount=value&txid=value×tamp=value
+ APIKEY)
加密算法请查看,点击前往
PHP签名示例 <?php /** * 生成签名 * * @param array $notification 包含 address, amount, txid, timestamp * @param string $apikey 加在字符串末尾的密钥 * @return string 小写 32 位 MD5 签名 */ function generateSign(array $notification, string $apikey): string { // 1. 构造待签名参数数组,注意 amount 保留 6 位小数 $params = [ 'address' => $notification['address'], 'amount' => number_format($notification['amount'], 6, '.', ''), 'txid' => $notification['txid'], 'timestamp' => $notification['timestamp'], ]; // 2. 按键名升序排序 ksort($params); // 3. 拼接成 "key=value&key=value...",末尾直接加密钥 $buf = ''; foreach ($params as $key => $value) { if ($buf !== '') { $buf .= '&'; } $buf .= $key . '=' . $value; } $buf .= $apikey; // 4. 计算 MD5 并返回小写十六进制字符串 return md5($buf); } // ------- 使用示例 ------- $notification = [ 'address' => 'TXYZ1234567890ABCDEFG', 'amount' => 12.3456, 'txid' => 'abcdef1234567890', 'timestamp' => '2025-05-03T14:30:00+08:00', ]; $apikey = 'yourapikeyKey123'; $sign = generateSign($notification, $apikey); echo "签名结果:{$sign}\n"; GO开发示例: func GenerateSign(notification models.DepositNotification, apikey string) string { // 构造待签名的参数集合,将各字段转换为字符串 params := map[string]string{ "address": notification.Address, "amount": fmt.Sprintf("%.6f", notification.Amount), "txid": notification.TxHash, "timestamp": notification.Timestamp, } // 取出所有 key 并排序 keys := make([]string, 0, len(params)) for key := range params { keys = append(keys, key) } sort.Strings(keys) // 拼接为 "key=value&key=value" 格式的字符串 var buf bytes.Buffer for i, key := range keys { if i > 0 { buf.WriteString("&") } buf.WriteString(key + "=" + params[key]) } // 在末尾加上密钥 buf.WriteString(apikey) // 计算 MD5 摘要并返回16进制字符串 hash := md5.Sum(buf.Bytes()) return hex.EncodeToString(hash[:]) }
若 HTTP 状态码为 200,则视为成功
其余状态视为失败,记录日志并尝试重发(由后台触发)
如需查询订单、查看回调日志,请使用管理后台页面进行操作。