跳到主要内容

批量创建收单子合约教程

· 阅读需 7 分钟
Pay Protocol 支持
Pay Protocol 支持
Pay Protocol 商务&支持团队

本文档介绍如何快速批量创建 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 对应 11
重要提示

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 即可。移除后,已部署的子合约钱包不会受影响,仍可正常作为收款地址使用。