Приветствую, недавно был заказ на подключение оплаты в wordrepss, с помощью USDT монет. На Github нашел пару готовых библиотек, которые взаимодействовали с токенами Tron (trx). Но была проблема именно в TRC20, почти во всех репозиториях были ошибки.
Как мне пришла идея?
Взглянув на API Tron, видно что как и другие криптовалюты у них есть открытый BlockChain, из которого мы видим все транзакции.
Весь алгоритм:
- С самого начало нужно определить, какой пользователь и с какого кошелька будет отправлять монеты.
- Необходимо сделать проверку по запросу пользователя, когда он отправил эти монеты и количество их.
- Если все условия нас устраивают, то добавляем в запись в БД.
А теперь по порядку:
Пользователь вводит свой кошелек, с которого будет производить оплату. Далее мы в БД добавляем данный кошелек и время, когда он добавил его. Данное время будет сравниваться с временем транзакции, оно должно быть больше, чем время добавления кошелька. Необходимо для того, что бы пользователь дважды не смог подтвердить оплату на сайте.
Далее мы указываем пользователю куда перевести монеты. После перевода ему необходимо нажать на кнопку я оплатил, что бы наша программа проверила его перевод.
Как будет осуществляться проверка, для TRON TRC20 есть удобное API, нам необходимо отправить туда запрос, и получить массив данных и циклом их перепроверить.
Сделав GET запрос по указанному URI, получаем ответ:
Далее циклом нам осталось проверить, что бы время добавления кошелька в БД было меньше транзакции и кошелек совпадал.
Итог
Почему нам приглянулся такой вариант, так как если бы мы создавали для каждого пользователя новый кошелек USTD TRC20, то нам необходимо было бы оплачивать двойную комиссию. А так мы принимаем все на один кошелек и зачисляем пользователю его монеты на сайт. Как по мне это самый лучший вариант для приема монет TRC20.
Мы для примера взяли данную связку с данной монетой, думаю если необходимо можно сделать то же самое и другими такими как Биткоин или эфириум.