批量创建收单子合约教程
本文档介绍如何快速批量创建 TRON 收单子合约。该方案的核心思路是:先在管理后台开通 TRX 币种,然后通过创建收单订单生成子合约地址,再用极少量 TRX(约 1.277 TRX,价值约 0.5 USDT)触发合约部署,从而以低成本完成子合约的批量初始化。
适用场景
- 基于 TRON(TRC20)网络的收单业务
- 商户需要预先准备大量收款子合约钱包,以应对高并发的收款需求
- 希望通过 TRX 支付 Gas,降低批量创建子合约的成本
整体流程
| 步骤 | 操作内容 | 执行方 |
|---|---|---|
| 1 | 管理后台添加 TRX 币种(钱包签名确认) | 管理员 |
| 2 | 调用接口创建收单订单 | 商户系统 |
| 3 | 调用接口更新付款信息为 TRX(currencyId: 1) | 商户系统 |
| 4 | 从订单详情中获取生成的子合约地址 | 商户系统 |
| 5 | 向该地址支付 0.01 TRX | 运营/财务 |
| 6 | 等待链上确认,新的子合约钱包自动部署 | — |
| 7 | 重复步骤 2~6 进行批量操作 | 商户系统 |
| 8 | 完成后将 TRX 币种从后台移除 | 管理员 |
每个子合约的转账成本约为 1.277 TRX(折合约 0.5 USDT),包含 0.01 TRX 转账金额、 0.267 TRX 的带宽费用、1 TRX 的新地址激活费用。相较于直接使用 USDT 触发合约部署,可显著降低 Gas 费用。
详细操作步骤
1. 管理后台添加 TRX 币种
使用管理员钱包登录管理员后台,进入「系统配置 → 币种列表」,添加 TRX 币种,并通过钱包签名确认操作。
管理后台地址:https://adm.payprotocol.network/login
1.1 选择需要开通的币种
点击「管理币种」按钮,在弹出的对话框中,从下拉列表里勾选 TRX (TRX)。

图 1:在「管理币种」对话框中,从下拉列表选择 TRX (TRX)
1.2 提交开通申请
确认已选币种包含 Tether(TRC20) (USDT) 和 TRX (TRX) 后,点击「提交」按钮。

图 2:确认选中的币种后点击「提交」
1.3 钱包签名确认
提交后系统会唤起钱包,弹出「触发智能合约」的签名请求,预估扣除约 2.4785 TRX 的 Gas 费用。点击「签名」按钮完成上链操作。

图 3:钱包弹窗中点击「签名」完成 TRX 币种的添加
签名成功后,币种列表中将出现 TRX 这条新记录,表示币种已开通成功。此时系统已具备使用 TRX 完成支付的能力,可以继续后续步骤。
2. 调用接口创建收单订单
通过商户 API 创建收单订单,每个订单将对应一个独立的子合约钱包地址。
接口文档:创建收单订单
请求示例
POST /payment/order/create
Content-Type: application/json
{
"chainId": 1,
"description": "A sample order",
"isLegalTender": 0,
"notifyUrl": "https://www.payment.com/api/notify",
"outTradeNo": "P2026010100000001",
"quoteAmount": "0.01",
"quoteCurrencySymbol": "TRX",
"redirectionUrl": "https://www.payment.com/order/redirect",
"tagId": 1
}
接口调用成功后,会返回订单的唯一标识 orderNo(订单号),后续步骤需要用到该字段。
建议在程序中循环调用此接口,每次调用使用唯一的 merchantOrderNo(商户订单号)。建议每次调用之间加入适当的延时(例如 200~500ms)。
3. 更新付款信息为 TRX
订单生成后,需要调用「更新付款信息」接口,将该订单的支付币种切换为 TRX。这一步是关键:通过将 currencyId 设为 1(即 TRX),后续支付的 0.01 TRX 即可触发该子合约钱包生成,且 Gas 成本极低。
接口文档:更新付款信息
请求示例
POST /payment/payInfo/update
Content-Type: application/json
{
"chainId": 1,
"currencyId": 1,
"outTradeNo": "P2026010100000001"
}
关键参数说明
| 参数 | 说明 | 示例值 |
|---|---|---|
orderNo | 步骤 2 创建订单后返回的订单号 | P2026010100000001 |
currencyId | 币种 ID,TRX 对应 1 | 1 |
currencyId 必须设置为 1(TRX 对应的 ID),否则后续 TRX 支付将无法被识别为有效付款。如果调用失败,请确认步骤 1 中的 TRX 币种是否已添加成功。
4. 获取订单中生成的子合约钱包地址
更新付款信息后,可通过「查询收单订单详情」或「查询收单页面信息」接口,获取该订单关联的子合约钱包收款地址。
收单付款子合约即为本次将要部署的子合约钱包地址。请将此地址保存到批量任务列表中,以便后续向其转入 0.01 TRX。
5. 向子合约地址支付 0.01 TRX
使用任意交易所或钱包(如 TronLink、Binance、OKX 等),向步骤 4 获取的收单子合约转账 0.01 TRX。
6. 等待子合约钱包部署完成
链上确认后(通常在 1 分钟内),系统会监听到该笔 TRX 转入交易,并自动触发子合约的部署逻辑。部署完成后,新的子合约钱包即可作为独立的收款地址投入使用。
确认子合约部署成功的方式
- 通过 TRON 区块浏览器(如 Tronscan)查询该地址,应能看到合约创建相关的交易记录
- 通过商户回调接口(
notifyUrl)接收订单状态变更通知 - 再次调用「查询收单订单详情」接口,确认订单状态已更新
7. 批量循环操作
将步骤 2 ~ 步骤 6 封装为程序循环或批处理脚本,即可批量生成多个子合约钱包。
8. 完成后移除 TRX 币种
批量创建任务完成后,建议从管理后台移除 TRX 币种,避免普通收单业务被误用 TRX 支付通道。
操作步骤
- 使用管理员钱包登录管理后台
- 进入「系统配置 → 币种列表」
- 点击「管理币种」按钮,在弹出的对话框中点击 TRX (TRX) 旁边的「×」将其移除
- 点击「提交」按钮
- 钱包签名确认操作(与步骤 1.3 类似)
移除 TRX 币种的流程与步骤 1(添加币种)完全一致,区别仅在于:在下拉列表中取消勾选 TRX 即可。移除后,已部署的子合约钱包不会受影响,仍可正常作为收款地址使用。
