• VLMI - форум по обмену информацией. На форуме можете найти способы заработка, разнообразную информацию по интернет-безопасности, обмен знаниями, курсы/сливы.

    После регистрации будут доступны основные разделы.

    Контент форума создают пользователи, администрация за действия пользователей не несёт ответственности, отказ от ответственности. Так же перед использованием форума необходимо ознакомиться с правилами ресурса. Продолжая использовать ресурс вы соглашаетесь с правилами.
  • Подпишись на наш канал в Telegram для информации о актуальных зеркалах форума: https://t.me/vlmiclub

Python QiwiBot (Telegram)

  • Автор темы Удалённый пользователь 5596
  • Дата начала
  • Теги
    python

Удалённый пользователь 5596

Guest
У

Удалённый пользователь 5596

Guest
Telegram Qiwi Bot
Приложение создано для рядовых пользователей Telegram и Qiwi
С помощью данного продукта можно совершать банковские операции, просматривать статус платежей, искать ближайшие пункты пополнения, вообщем карманный киви кошелёк в телеграмме


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

:expressionless:Пример работы бота:expressionless:

EACA41DE-4FCD-4BEB-AEBB-CF83A0D80979.jpeg7DE7EB56-230A-425D-8FF9-141ABCAD32AB.jpeg

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

Введение (используемые API) кликабельно
QiwiAPI

QiwiAPI карт терминалов

API для вычисления города по IP

API Яндекс карт

Геокодер Яндекс карт

Python-Telegram-Bot

Описание реализации

Структура:

:sun:Приложение разбито на 3 файла:sun:
1) Bot.py — основная логика бота
2) QIWI_API.py — работа с API
3) Languages.json — тест кнопок и диалогов


Особенности:
Приложение использует 6 видов API Геокодер и Static API от компании «Яндекс» работают в связке с QIWI-Terminal-Map API и FreeGEOIP для отображения пользователю карты терминалов или их адресов. Так же у пользователя есть возможность отправить своё местоположение.
(модули)


: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"

:eyes:class UserQiwi:eyes:

UserQiwi.url = https://edge.qiwi.com/

: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:

: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:

: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:

: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:

: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:

: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:

: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:

: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:

: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 | Завершение работы с ботом)


Инструкция и бот:
Скачать


:imp::imp::imp:
:heart:RENOZAVR WITH LOVE:heart:​
 
Последнее редактирование модератором:

Удалённый пользователь 5596

Guest
У

Удалённый пользователь 5596

Guest
К теме были подкреплены скриншоты работы бота для тех кто просил в лс.
Так же дам адрес телеграмма своего бота другой версии для тех кому лень устанавливать)
[automerge]1547086733[/automerge]
 
Последнее редактирование модератором:

Lun1ik

Местный
Сообщения
132
Реакции
101
0 руб.
Telegram
К теме были подкреплены скриншоты работы бота для тех кто просил в лс.
Так же дам адрес телеграмма своего бота другой версии для тех кому лень устанавливать)
[automerge]1547086733[/automerge]
Обнови ссылку
 

Удалённый пользователь 5596

Guest
У

Удалённый пользователь 5596

Guest

Rassel225

vlmi <3

Rassel225

vlmi <3
Эксперт
Сообщения
436
Реакции
545
0 руб.
Telegram
Мне удалили почту и диск со всеми моими данными, приношу глубочайшие извинения, могу лишь предложить пользоваться моим личным ботом @bagabondobot
А на компе ниче не осталось?
 

BotHub

Разработчик ботов

BotHub

Разработчик ботов
Резидент
Сообщения
285
Реакции
420
0 руб.
Telegram

Удалённый пользователь 5596

Guest
У

Удалённый пользователь 5596

Guest
Но а по коду, в принципе можно отказаться от 1 из модулей, заменив его на готовый.
Мануал по QIWIPY: https://pyqiwi.readthedocs.io/ru/latest/
pip3 install --upgrade qiwipy
Спасибо ещё раз Хабу за то что он перезалил этот файл.
обнови ссылку пж
 
Сверху Снизу