Удалённый пользователь 5596
Guest
У
Удалённый пользователь 5596
Guest
Telegram Qiwi Bot
Приложение создано для рядовых пользователей Telegram и Qiwi
С помощью данного продукта можно совершать банковские операции, просматривать статус платежей, искать ближайшие пункты пополнения, вообщем карманный киви кошелёк в телеграмме
Для тех кому лень устанавливать могу дать адрес телеграмм своего бота уже установленного и улучшенной версии для пользования, данная версия с открытым исходным кодом для изучения или чего то ещё)
:expressionless:Пример работы бота:expressionless:
Далее читают те кто хочет разобраться как и через что работает бот, ссылку с инструментом и установкой можно найти в конце статьи.
Приложение создано для рядовых пользователей Telegram и Qiwi
С помощью данного продукта можно совершать банковские операции, просматривать статус платежей, искать ближайшие пункты пополнения, вообщем карманный киви кошелёк в телеграмме
Для тех кому лень устанавливать могу дать адрес телеграмм своего бота уже установленного и улучшенной версии для пользования, данная версия с открытым исходным кодом для изучения или чего то ещё)
:expressionless:Пример работы бота:expressionless:
Далее читают те кто хочет разобраться как и через что работает бот, ссылку с инструментом и установкой можно найти в конце статьи.
Введение (используемые API) кликабельно
QiwiAPI
QiwiAPI карт терминалов
API для вычисления города по IP
API Яндекс карт
Геокодер Яндекс карт
Python-Telegram-Bot
Описание реализации
Структура:
:sun:Приложение разбито на 3 файла:sun:
1) Bot.py — основная логика ботаСтруктура:
:sun:Приложение разбито на 3 файла:sun:
2) QIWI_API.py — работа с API
3) Languages.json — тест кнопок и диалогов
Особенности:
(модули)
:sun: urllib — отправка GET запросов
:sun: json — помощь в отправке POST запросов и работа с локализацией
:sun: time — помощь в отправке POST запросов (UNIX TIME)
:sun: requests — отправка POST запросов
:sun: os — очистка рабочей папки после отправки изображения чека
:sun: telegram (Python-Telegram-Bot) — взаимодействие с серверами Telegram
(классы ошибок)
:idea:QiwiError(Exception):idea:
:bomb: SyntaxisError(QiwiError) "Query execution failed"
:bomb: TokenError(QiwiError) "Wrong TOKEN"
:bomb: class NoRightsError(QiwiError): "No right"
:bomb: TransactionNotFound(QiwiError) "Transaction not found or missing payments with specified characteristics"
:bomb: WalletError(QiwiError) "Wallet not found"
:bomb: HistoryError(QiwiError) "Too many requests, the service is temporarily unavailable"
:bomb: MapError(QiwiError) "Map processing errors"
:bomb: NotFoundAddress(MapError) "Could not find address"
:bomb: CheckError(QiwiError) "Could not get check"
:bomb: WrongEmail(CheckError) "Wrong Email address"
:bomb: WrongNumber(QiwiError) "Wrong phone number"
:bomb: TransactionError(QiwiError) "Failed to carry out the transaction"
:sun: self.token(str) = токен пользователя
:sun: self.headers(dict) = headerы для выполнения запросов
:sun: self.urls(dict) = формы заполнения ссылок для запросов
:sun: self.currency(dict) = «конвертер валюты»
:sun: self.identification(dict) = «конвертер идентификаторов»
:sun: self.user_date(dict) = информация о пользователе
:skull:class UserQiwi :skull:
:sun: Данные представлены в виде:
(Название | Переменные | Описание | Тип возвращаемых данных) :sun::sun: Данные представлены в виде:
:idea: (__init__self | token | объявляет нового пользователя | None)
:idea: (change_tokenself | new_token | меняет токен пользователя | None)
:idea: (get_user_token | self | возвращает пользовательски токен | str)
:idea: (get_balance | self | возвращает баланс счетов пользователя | str)
:idea: (update_info | self | обновляет self.user_data | None)
:idea: (get_info | self | возвращает информацию о пользователе | str)
:skull:class UserQiwi:skull:
:sun: Данные представлены в виде: (Название | Переменные | Описание | Тип возвращаемых данных) :sun:
:sun: Данные представлены в виде: (Название | Переменные | Описание | Тип возвращаемых данных) :sun:
:idea: (get_last_transactionsself | rows
(по умолчанию = 10) | Возвращает последние транзакции пользователя | str)
:idea: (get_info_about_transaction | self | transaction_id | Возвращает информацию по транзакции | str)
:idea: (get_map_terminates | self, address
(по умолчанию None) | Возвращает ссылку на изображение карты и адреса терминалов | dict)
:idea: (get_image_checkself | transaction_id, file_name (по умолчанию «check.jpg») | Создает изображение чека указанной транзакции (не работает с IN типом транзакций) | None)
:idea: (send_check_emailself | transaction_id, email
(по умолчанию None) | Отправляет изображение чека на почту. Если почта не указана используется почта пользователя | None)
:skull:class UserQiwi:skull:
:sun: Данные представлены в виде:
(Название | Переменные | Описание | Тип возвращаемых данных) :sun::sun: Данные представлены в виде:
:idea: (transaction_telephoneself | amount, number
(по умолчанию None) | Переводит средства со счета владельца на указанный номер. Если такого нет, используется номер пользователя | None)
:idea: transaction_qiwiself | account_id, amount | Переводит средства со счета владельца на указанный счет | None)
:party:Функции QIWI_API :party:
:idea: run_the_query(headers, url) — Выполняет GET запрос (urllib + json) | dict/bool
:idea: found_address(ip) — Выполняет GET запрос (requests). Возвращает город определенный по ip адресу
:idea: str/bool write_file(headers, url, file_name) — Выполняет
GET запрос (urllib). Записывает изображение чека в указанный файл. | bool found_id(number) — Выполняет POST запрос
(requests). Возвращает id мобильного оператора. | str/bool
:zzz:Bot.py:zzz:
:sun:Данные представлены в виде:
(Название | Переменные | Описание):sun::sun:Данные представлены в виде:
:idea: (startbot | update | Начало работы с ботом)
:idea: (check_tokenbot| update, user_data | Проверка токена)
:idea: (balancebot | update, user_data | Отправляет баланс)
:idea: (transactionsbot | updateНачало | диалога по поводу транзакций.)
:idea: (check_statusbot | update | Просьба ввести id транзакции)
:idea: (answer_about_transactionbot | update, user_data | Отправляет информацию о транзакции)
:idea: (lastbot | update, user_data | Отпрвляет информацию о последних транзакицях)
:zzz: Bot.py:zzz:
:sun:Данные представлены в виде:
(Название | Переменные | Описание):sun::sun:Данные представлены в виде:
:idea: (terminalsbot | update, user_data | Начало работы с транзакциями)
:idea: (take_command_found_addressbot | update, user_data | Выбор типа ответа)
:idea: (take_addressbot | update | Просьба ввести адрес)
:idea: (take_locaionbot | update, user_data | Обработка координат геолокации пользователя)
:idea: (answer_about_terminatesbot | update | Отправка ответа)
:idea: (optionsbot | update | Начало диалога по поводу настроек)
:idea: (get_infobot | update, user_data | Отпрвляет информацию о пользователе)
:zzz:Bot.py :zzz:
:sun:Данные представлены в виде:
(Название | Переменные | Описание):sun::sun:Данные представлены в виде:
:idea: (take_new_tokenbot | update | Смена пользователя)
:idea: (update_userbot | update, user_data | Обновление информации аккаунта)
:idea: (versionbot | update | Отправка версии программы)
:idea: (checkbot | update, user_data | Начало диалога про чеки)
:idea: (dialog_emailbot | update, user_data | Начало диалога про почту)
:idea: (enter_emailbot | update | Просьба ввести email)
:idea: (get_emailbot | update, user_data | Получение email. Просьба ввести id транзакции)
:zzz:Bot.py:zzz:
:sun:Данные представлены в виде:
(Название | Переменные | Описание):sun::sun:Данные представлены в виде:
:idea: (enter_transaction_idbot | update | Просьба ввести id транзакции.)
:idea: (get_transaction_idbot | update, user_data | Вывод на экран/отправка на почту копии чека)
:idea: (paybot | update, user_data | Начало диалога про оплату)
:idea: (enter_user_idbot | update, user_data | Просьба ввести id клиента)
:idea: (get_user_idbot | update, user_data | Получение id клиента. Просьба ввести сумму перевода.)
:idea: (mobile_phonebot | update, user_data | Начало диалога про выбор номера мобильного телефона)
:idea: (enter_mobilebot | update | Просьба ввести номер мобильного телефона)
:zzz:Bot.py:zzz:
:sun:Данные представлены в виде:
(Название | Переменные | Описание):sun::sun:Данные представлены в виде:
:idea: (get_mobilebot | update, user_data | Получение номера мобильного телефона. Просьба ввести сумму оплаты.)
:idea: (enter_amountbot | update | Просьба ввести сумму оплаты.)
:idea: (get_amountbot | update, user_data | Оплата
мобильного/перевод
клиенту Qiwi)
:idea: (wrong_answerbot | update | Отправка указания на использование клавиатуры)
:idea: (backbot | update | Возврат к начальному меню.)
:idea: (stopbot | update | Завершение работы с ботом)
Последнее редактирование модератором: