September 13, 2023

Бот-терминал

Итак, в чем смысл. Бот представляет собой некий терминал, который имеет ряд команд.


Общие задачи и примечания.

1. Кнопки у бота будут находится в интерфейсе тг, а не в сообщениях.
Таким образом, когда на том или ином шаге бот должен писать и текст, и выдавать кнопки, кнопки будут появляться в интерфейсе, а текст как сообщение от бота.

2. Шаги бота будут идти изменением одного и того же, а не как история сообщений, чтобы избежать нажатий не туда. Т.е., шаг 1 идет в одном сообщении, с одними кнопками в интерфейсе, шаг 2 меняет это сообщение ( текст) и показывает новые кнопки в интерфейсе. Вроде так можно сделать, видел такое.

3. Боту нужно предоставить доступ к курсам с сайта xe.com, а так же к курсам бинанса.

4. Всего будет 1 валюта (RSD) и 1 криптовалюта (USDT TRC20), и бот должен будет онлайн максимально быстро и точно высчитывать курс и после ввода суммы платежа в RSD выдавать корректное значение в USDT.

5. При всех этих расчетах нужно будет добавить комиссионный % что мы берем себе и с чего по сути зарабатываем. Процент будет добавляться в момент расчета курса валюты к криптовалюте.

6. Адреса криптовалюты будут неизменны, я их предоставлю.

7. Нужна будет полноценная админ панель, возможно в виде простенького сайта, где мы могли бы просматривать все транзакции и чеки, грубо говоря.

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

9. Возможно, есть вариант с помощью api как-то это все дело связать с криптоботом телеграмма, возможно, так будет все проще обрабатывать.

10. После написания бота нужна будет почти круглосуточная поддержка и возможность что-то исправить и как-то помочь.

11. Бота нужно будет поставить на отдельный хостинг.

Общая логика поведения бота:

1. Если бот просит что-то ввести в чат, то после получения ответа он отправляет юзера на следующий шаг

2. Если бот просит нажать на кнопку, то после нажатия на неё, он отправляет юзера на следующий шаг.
Тут есть нюансы.
2.1 Так, например, при нажатии на кнопку "проверить оплату", в случае, если оплата ещё не была успешно получена, то ничего не происходит, и юзер остается на этом же шаге дальше нажимать эту кнопку.
2.2 Есть моменты, где бот предлагает откорректировать сумму оплаты в RSD, в этом случае при нажатии на соответствующую кнопку бот отправляет юзера на тот шаг, где ему необходимо что-то изменить, там юзер меняет сумму, сохраняет, или меняет повторно посредством нажатия на кнопку (далее распишу), а после этого возвращает обратно.
2.2.1 При редактировании суммы оплаты в RSD человека переносит на этот шаг, появляется надпись: "Пожалуйста, измените сумму оплаты в RSD. Используйте только цифры и точку для обозначения неполных чисел."

После отправки в чат юзером новой информации появляется кнопки: Кнопки:
1. Сохранить
Юзера отправляют на тот шаг, с которого он собственно и пошел менять сумму назад.
2. Изменить Можно опять менять сумму оплаты в RSD вписывая значения в чат. После новых данных появляются все те же кнопки опять.

Взаимодействие с ботом с точки зрения юзера.

1. Мы даем человеку доступ к боту.
Юзер сможет с ним взаимодействовать, у юзеров что не имеют прав взаимодействовать с ботом, при отправке чего-то в чат ничего не происходит.

После одобрения, у юзера появляется следующее:
Текст: "Здравствуйте! Сумма товара или услуги должна быть в RSD, а сумма к оплате в криптовалюте USDT в сети TRC20"

Кнопки:
1. Новый платеж
Приступаем к шагу 2

2. История платежей
Открывается список с чеками в виде кнопок. Скорее всего, эта табличка будет реализована, опять же, в виде кнопок в названии которых будут даты платежей, при нажатии на кнопку определенной даты в чат будут отосланы все чеки за эту дату. 2. Выбор суммы в RSD. Текст: "Пожалуйста, введите сумму оплаты в RSD. Используйте только цифры и точку для обозначения неполных чисел."
Юзер вписывает сумму оплаты в RSD.
Тут бот воспринимает только цифры, а так же точку. Точка обозначает не полные числа.

При получении в ответе символов отличных от цифр и точки, а так же в случае опечаток по примеру двух точек в одном числе и т.д., бот пишет: "сумма введена не корректно, пожалуйста, попробуйте ещё раз."

А так же появляется кнопка, при нажатии на которую юзер имеет возможность снова писать в чат, вместе с этим появляется ещё одна кнопка

Кнопка:
Попробовать ещё раз -> Сохранить


3. Оплата USDT. Текст:
"К оплате (сумма к оплате после конвертации по актуальному курсу + комиссия) USDT TRC20

Кнопки:
1. Оплатить
Перевод на следующий шаг

2. Изменить сумму
Кнопка отсылает на предыдущий шаг. 4. Оплата по выбранным реквизитам.
Текст:
"Пожалуйста, произведите оплату на данные реквизиты. Вы можете отсканировать QR код.
Сумма к получению должна точно соответствовать (сумма к оплате после конвертации по актуальному курсу + комиссия) USDT TRC-20"

Юзер получает QR код, а так же адрес в текстовом виде

Кнопки:
1. Проверить перевод
Кнопка чекает статус транзакции в блокчейне и при получении средств выдает положительный ответ, при отсутствии - ничего не происходит, можно далее нажимать на кнопку, а бот пишет: "Ваши средства еще не поступили на счет, пожалуйста, проверьте ещё раз." При успешной проверке бот выдает чек в текстопой форме- юзернейм юзера, дата и время перевода TxID транзакции, сумма, выбранная криптовалюта и валюта. 2. Отклонить
2.1 Новый платеж
Отправляет юзера на первый шаг 2.2 Изменить сумму
Отправляет юзера на изменение суммы оплаты в RSD
2.3 Проверить перевод (Первая кнопка. Нужно, если человек случайно нажал на вторую кнопку)

QR код содержит в себе кроме адреса еще и точное количество криптовалюты необходимое к получению.

Таким образом, отсканировав QR код юзер имеет в своем кошельке или на бирже автоматически прописанное количество крипты что необходимо отправить.


5. После успешной проверки.

Юзера отправляет на самый первый шаг.