Принимайте платежи USDT на TRON через API: Руководство по интеграции для продавцов — TRON Wiki

Принимайте платежи USDT на TRON через API: Руководство по интеграции для продавцов

11 мин чтения · ⌘K поиск

Прием USDT на TRON обеспечивает практически мгновенный расчет и низкие комиссии, что привлекательно для продавцов, платформ SaaS и внебиржевых отделений. В отличие от платежей по картам, ончейн USDT не имеет возвратных платежей и собственного веб-перехватчика — вы создаете логику подтверждения на основе TronGrid или вашего собственного полного узла.

В этом руководстве описывается производственная архитектура приема платежей TRC-20 USDT.

Обзор архитектуры

Код
Customer → sends USDT to deposit address
                ↓
         TronGrid / event indexer
                ↓
         Your payment service (match txid)
                ↓
         Webhook to app → order fulfilled
                ↓
         Sweep to treasury (optional cron)

Официальный контракт USDT (только в основной сети):

⟦Т1⟧

Проверьте: USDT TRC-20 объяснение.

Стратегия адресации

Уникальный адрес для каждого счета

Рекомендуется. Генерируйте новый адрес TRON для каждого заказа из HD-кошелька (путь BIP44 m/44'/195'/0'/0/n — тип монеты 195 для TRON).

Преимущества:

  • Автоматическое сопоставление заказов по адресу to
  • Упрощенный учет
  • Ограничивает радиус взрыва, если ключ скомпрометирован

Один адрес + сумма, соответствующая

Один адрес, совпадение по точной сумме + временное окно.

Риски:

  • Коллизирующиеся платежи на одну и ту же сумму
  • Клиент отправляет неправильную сумму
  • Требуется ручная сверка

Используйте только при низкой громкости под контролем человека.

Обнаружение депозитов

Вариант A: TRC-20 API транзакций

⟦Т2⟧

Подробности: запрос TRC-20 API баланса.

Вариант Б: прослушиватели событий

Фильтр Transfer(address,address,uint256), где to = адреса депозитов. Более масштабируемый по объему.

Прослушиватели событий TronWeb.

Вариант C: хеш транзакции от клиента

Клиент отправляет txid вручную — вы подтверждаете один раз:

API проверки транзакции.

Наименее автоматизированный; полезен в качестве запасного варианта.

Правила проверки

Прежде чем отметить платным:

  1. Контракт = TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t
  2. Результат = SUCCESS (через gettransactioninfobyid)
  3. to = ожидаемый адрес депозита
  4. Сумма ≥ общей суммы заказа (соблюдайте политику переплаты)
  5. txid ранее не обрабатывался (идемпотентность)
  6. Временная метка блокировки в окне истечения срока действия ордера.

Отклонять токены fake USDT с одинаковым символом.

Подтверждения

⟦Т3⟧

Примеры политики:

Уровень рискаБлоки ожидания
Недорогие цифровые товары1
Стандартная электронная коммерция3–12
Высокое значение / руководство19+ или одобрение человека

TRON риск реорганизации низкий, но ненулевой — настройтесь на бизнес-риск.

Вебхуки для вашего приложения

Внутренний поток после обнаружения:

⟦Т4⟧

Подпишите веб-перехватчики с помощью HMAC. Повторите попытку с экспоненциальной задержкой.

Зачистки и казначейство {# зачистка}

Горячие депозитные ключи онлайн для автоматизации — периодически переводите в холодную казну:

⟦Т5⟧

Учет энергии при развертке txs — заморозить TRX на горячем кошельке или сохранить буфер TRX.

Безопасность

  • Никогда не храните главное начальное число на сервере приложений в незашифрованном виде — используйте HSM или KMS.
  • Подтвердите адреса с помощью TronWeb.isAddress()проверка адреса
  • Конечные точки общедоступных счетов с ограничением скорости
  • Мониторинг неожиданных оттоков (предупреждение о компрометации)
  • Безопасность смарт-контракта при использовании контрактов условного депонирования

UX-рекомендации

  • Показать QR-код с адресом + меткой сети «TRC-20 USDT»
  • Отображение точной ожидаемой суммы (6 десятичных знаков)
  • Срок действия счета обратного отсчета
  • Ссылка на TronScan после оплаты
  • Внимание: не та сеть теряет средства — неверное руководство по сети

Обработка ошибок

ДелоДействие
НедоплатаПолитика частичного кредита или возврата
ПереплатаКредитное превышение или возврат вручную
Просрочка платежаПросроченный заказ — поддержка вручную
Двойной платежИдемпотент игнорировать
В ожиданииОпрос до SUCCESS или таймаута

Тестирование {#тестирование}

  1. Развертывание в тестовой сети Shasta с помощью теста USDT.
  2. Имитировать txs SUCCESS и REVERT
  3. Ограничения скорости нагрузочного теста TronGrid
  4. Тест хаоса: дубликаты вебхуков, тайм-аут API

Руководство по тестовой сети Нила.

Контрольный список устранения неполадок

Если что-то пойдет не так на TRON, отнеситесь к этому как к проблеме структурированной отладки: подтвердите точный txid в цепочке, проверьте адрес целевого контракта и только затем решите, можно ли устранить сбой. В TRON многие «загадочные» проблемы — это просто одна из следующих: неправильная сеть (основная сеть или тестовая сеть), неправильный контракт токена (поддельный USDT / токены с одинаковым названием), недостаточность ресурсов (OUT_OF_ENERGY / пропускная способность) или задержка пользовательского интерфейса/индексатора между кошельком и проводником.

Начните с этих цепочек проверок:- Всегда копируйте полный txid/хэш из своего кошелька или проводника.

  • Подтвердите статус результата передачи на TronScan (SUCCESS, REVERT, OUT_OF_ENERGY или все еще в ожидании).
  • Проверьте, соответствует ли адрес получателя/договора тому, что вы намеревались отправить.
  • Если это вызов контракта, убедитесь, что селектор функций и параметры соответствуют стандарту токена, который, по вашему мнению, вы используете (TRC-20 vs TRC-10 vs BEP-20 на BSC).

Затем примените путь исправления для вашей категории:

  • Подтвердите статус и параметры транзакции.
  • Проверка адресов (контракт токена, получатель, маршрутизатор/отправитель).
  • Добавляйте или делегируйте ресурсы (энергию/пропускную способность), если сбой связан с ресурсами.

Распространенные ошибки

Эти шаблоны вызывают большинство сбоев на уровне пользователя:

  • Использование адресов основной сети в тестовой сети (или наоборот).
  • Копирование символа токена вместо фактического адреса контракта TRC-20.
  • Подписание неправильного адреса одобрения/платежа, поскольку ссылка пользовательского интерфейса является вредоносной или устаревшей.
  • Повторная попытка без изменения ошибочного ввода (например, REVERT продолжает возвращаться до тех пор, пока вы не исправите параметр).

Если вы не уверены, не «просто отправьте еще раз». Внесите одно контролируемое изменение, проверьте на TronScan, затем продолжайте.

Часто задаваемые вопросы

Как узнать, действительно ли транзакция подтверждена?

Используйте TronScan и проверьте статус результата передачи. Ярлыки кошелька «ожидающие» могут отставать; Статус цепочки является источником истины. Скопируйте txid и проверьте SUCCESS/REVERT/OUT_OF_ENERGY, а не только текст пользовательского интерфейса.

Почему пользовательский интерфейс отличается от TronScan?

Некоторые кошельки и децентрализованные приложения используют разные индексаторы или уровни кэша. Короткая задержка между трансляцией и индексированием является нормальной; сравните txid и подождите, пока цепочка стабилизируется, прежде чем сделать вывод об ошибке.

Что мне делать после REVERT?

Остановитесь и декодируйте неудачный вызов. Большинство ошибок REVERT вызвано недопустимыми параметрами, неправильным адресом контракта, отсутствием утверждений или несоответствием между стандартом токена и методом. Устраните причину и подпишите заново.

Безопасно ли подписывать неограниченное разрешение?

Неограниченное одобрение безопасно только для проверенных вами адресов доверенных отправителей (проверенный источник, правильный маршрутизатор и ожидаемый контракт токена). Для тестирования отдавайте предпочтение ограниченному утверждению и отзыву после завершения.

Какие ресурсы требуются TRON для вызовов контракта?

Выполнение смарт-контракта в основном потребляет энергию, а байты транзакций потребляют пропускную способность. Если вы получили OUT_OF_ENERGY, добавьте/заморозьте/делегируйте Энергию. Если полоса пропускания исчерпана, сосредоточьтесь на сохранении достаточного количества TRX для байтов и распределения ресурсов.

Как я могу уменьшить количество обращений в службу поддержки?

Покажите пользователям четкое сообщение «что произошло» на основе статуса цепочки и дайте прямую ссылку на соответствующее руководство (ожидание, сбой, отсутствие энергии или проверка). Сохраните txid, чтобы можно было быстро выполнить согласование.

Похожие руководства {#связанные}

Часто задаваемые вопросы

Какой официальный контракт USDT на TRON для платежей?

TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t — фильтровать все обнаружения по этому контракту.

Сколько подтверждений должен ждать продавец?

Наибольшее количество баллов засчитывается после одного блока (~3 секунды). Дорогое может подождать дольше.

Для ручного бизнеса да. Автоматическая проверка требует интеграции API.

Нужны ли клиентам TRX, чтобы заплатить мне USDT?

Комиссию Energy/TRX платит отправитель, а не продавец. Торговец платит комиссию за чистку.

Является ли USDT на TRON обратимым?

Никаких возвратных платежей. Для возврата средств необходимо отправить USDT обратно вручную.