Приём оплаты в USDT и TON в Mini App - счёт на заказ, курс на 15 минут, автовыдача

Ссылка на работу
image image image
Задача Заказчик продаёт цифровой товар - платные шаблоны и доступ к закрытой библиотеке файлов. Покупатели в основном не из России, картой российского банка им платить нечем, а стейблкоины у них уже есть на бирже. До меня всё шло руками: человек писал в личку, ему кидали адрес кошелька, он присылал скриншот перевода. Заказчик открывал обозреватель и сверял глазами - тот адрес, та сумма, пришло или ещё висит. Попросили Mini App, где приложение само выдаёт реквизиты, само видит платёж и само отдаёт товар. Что сделал Mini App на React, бот и бэкенд - Python, aiogram 3 и FastAPI, база PostgreSQL, блокировки и кэш курса на Redis. На каждый заказ выписывается инвойс: сумма в USDT или TON, адрес, свой комментарий-идентификатор и живой срок в 15 минут. Курс тянется с биржи, фиксируется на эти 15 минут и на экране идёт обратный отсчёт - после него сумма пересчитывается заново. Платёжная ссылка ton:// и QR рядом, кнопка открывает кошелёк с уже подставленной суммой и комментарием. Так-же есть история операций с фильтром по статусу и выгрузка в CSV - для сверки и для бухгалтера. Результат Оплата перестала быть перепиской: покупатель жмёт кнопку, переводит и получает доступ, не дожидаясь ответа продавца. От перевода до выдачи проходит около минуты - большую часть занимают подтверждения сети, а не мой код. За первый месяц через приложение прошло 212 платежей, семь из них пришли недоплатой и закрылись доплатой без моего участия. Скриншоты экранов оплаты и админки приложены к работе.