Как сделать оплату в телеграмме боту python
Перейти к содержимому

Как сделать оплату в телеграмме боту python

  • автор:

Как принимать платежи в Telegram | API Yoomoney Python

В данном посте мы научимся принимать платежи в Telegram боте с помощью API Yoomoney.

Введение

Начну с того, что я не так давно хотел создать магазин электронных товаров в Telegram. И столкнулся с проблемой, что на момент работы не было готовых решений. Хотелось принимать платежи без ИП и всякой этой движухи. Поэтому мой выбор был между Qiwi и Yoomoney (раньше Yandex Деньги). Сам я из Беларуси. Поэтому проще получить «Идентифицированный» аккаунт было у Yoomoney.

В итоге создал библиотеку yoomoney для Python.

Если данный пост вам помог, то поставьте звезду на GitHub. Мне будет очень приятно!

Описание

Как выставить счет на оплату

Получаем токен

Видео туториал есть на GitHub проекта.

Для того, чтобы пользоваться API Yoomoney нужно получить специальный токен. Первым делом регистрируем приложение:

1. Зайдите в кошелек ЮMoney. Если кошелька нет, создайте его.

2. Перейдите на страницу Регистрация приложения.

3. Укажите параметры приложения:

4. Нажмите на кнопку Подтвердить.

Откроется страница Данные приложения, где будут указаны название вашего приложения, его идентификатор (client_id) и, если выбрана соответствующая опция, сгенерированное секретное слово (client_secret).

Запоминаем client_id и redirect_uri, они нам еще нужны.

Теперь самое сложное: заменяем на свои данные и запускаем код. Следуйте всем шагам программы.

Не забываем про pip install yoomoney

Ура! Мы получили наш токен!

Проверяем токен

Заменяем YOUR_TOKEN на ваш и запускаем:

Супер! Токен работает и можно переходить к основной части.

Как выставить счет на оплату

Для этого воспользуемся модулем Quickpay.

Получаем две ссылки:

Первая ссылка находится под капотом второй. Обе ведут на одну форму. Но вторая имеет свой жизненный цикл.

Форма оплаты

Форма оплаты

Оплатить можно либо картой, либо переводом из кошелька.

Теперь вопрос: Как нам определить, что именно этот человек оплатил счет?
Для этого воспользуемся параметорм label — метка, которую сайт или приложение присваивает конкретному переводу. Например, в качестве метки можно указывать код или идентификатор заказа.

И теперь наша программа будет выглядеть так:

Теперь осталось только проверить оплату.

Проверка оплаты

Для этого воспользуемся основным модулем Client.

Зная label транзакции мы можем отфильтровать историю операций кошелька. Просто укажем label в client.operation_history():

В результате получаем список всех операций по нашему фильтру:

Теперь мы знаем прошла ли оплата.

Всё! Больше ничего не нужно для приема платежей.

Заключение

Если данный пост вам помог, то поставьте звезду на GitHub. Мне будет очень приятно!

Name already in use

pyTelegramBotAPI / examples / payments_example.py /

No definitions found in this file.

  • Go to file T
  • Go to line L
  • Go to definition R
  • Copy path
  • Copy permalink
  • Open with Desktop
  • View raw
  • Copy raw contents Copy raw contents

Copy raw contents

Copy raw contents

This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters

Как принимать платежи в Telegram | API Yoomoney Python

Как принимать платежи в Telegram | API Yoomoney Python

В данном посте мы научимся принимать платежи в Telegram боте с помощью API Yoomoney.

Введение

Начну с того, что я не так давно хотел создать магазин электронных товаров в Telegram. И столкнулся с проблемой, что на момент работы не было готовых решений. Хотелось принимать платежи без ИП и всякой этой движухи. Поэтому мой выбор был между Qiwi и Yoomoney (раньше Yandex Деньги). Сам я из Беларуси… Поэтому проще получить «Идентифицированный» аккаунт было у Yoomoney.

В итоге создал библиотеку yoomoney для Python.

Если данный пост вам помог, то поставьте звезду на GitHub. Мне будет очень приятно!

Описание

  • Получаем токен
  • Проверяем токен
  • Как выставить счет на оплату
  • Проверка оплаты

Получаем токен

Для того, чтобы пользоваться API Yoomoney нужно получить специальный токен. Первым делом регистрируем приложение:

1. Зайдите в кошелек ЮMoney. Если кошелька нет, создайте его.

2. Перейдите на страницу Регистрация приложения.

3. Укажите параметры приложения:

4. Нажмите на кнопку Подтвердить.

Откроется страница Данные приложения, где будут указаны название вашего приложения, его идентификатор (client_id) и, если выбрана соответствующая опция, сгенерированное секретное слово (client_secret).

Запоминаем client_id и redirect_uri, они нам еще нужны.

Теперь самое сложное: заменяем на свои данные и запускаем код. Следуйте всем шагам программы.

Не забываем про pip install yoomoney

Ура! Мы получили наш токен!

Проверяем токен

Заменяем YOUR_TOKEN на ваш и запускаем:

Супер! Токен работает и можно переходить к основной части.

Как выставить счет на оплату

Для этого воспользуемся модулем Quickpay.

Получаем две ссылки:

Первая ссылка находится под капотом второй. Обе ведут на одну форму. Но вторая имеет свой жизненный цикл.

Как принимать платежи в Telegram | API Yoomoney Python

Оплатить можно либо картой, либо переводом из кошелька.

Теперь вопрос: Как нам определить, что именно этот человек оплатил счет?
Для этого воспользуемся параметорм label — метка, которую сайт или приложение присваивает конкретному переводу. Например, в качестве метки можно указывать код или идентификатор заказа.

И теперь наша программа будет выглядеть так:

Теперь осталось только проверить оплату.

Проверка оплаты

Для этого воспользуемся основным модулем Client.

Зная label транзакции мы можем отфильтровать историю операций кошелька. Просто укажем label в client.operation_history():

В результате получаем список всех операций по нашему фильтру:

Теперь мы знаем прошла ли оплата.

Всё! Больше ничего не нужно для приема платежей.

Заключение

Если данный пост вам помог, то поставьте звезду на GitHub. Мне будет очень приятно!

Как настроить прием платежей 2.0 в Telegram за 5 часов

С выходом обновления Платежи 2.0, были интересно написать и потрогать своего бота. Расскажем о нашем опыте и нюансах, с которыми столкнулись при разработке. В конце статьи есть ссылка на канал, в котором живет бот.

Первым делом мы зашли и создали бота в BotFather. Тут всё просто, опираемся на документацию: https://core.telegram.org/bots#creating-a-new-bot

Если в инструкции по ссылке ничего не понятно, то вот инструкция от нас:
1. Находим в Телеграм бота BotFather и добавляем себе в контакт-лист
2. Смотрим доступные команды бота с помощью команды /help
3. Выбираем /newbot и далее по подсказкам выполняем действия
4. После создания бота вы получите токен, которые нужно будет использовать в коде вашего бота. Сообщение с токеном необходимо сохранить.

  • В боте BotFather вводим команду /mybots
  • В созданном боте выбираем поле Payments и выбираем, например, Stripe
  • Выбираем Connect Stripe Test и следуем инструкции
  • После выполнения, вы получите токен оплаты, его нужно сохранить

Мы выбрали библиотеку https://github.com/php-telegram-bot/core
В конфиге params.php указали все токены из предыдущего шага. Выглядит так:

И с помощью библиотеки организовали взаимодействие бота с приложением:

Одна из первых тонкостей: для реализации нужен домен и SSL сертификат. Для наших задач мы взяли VDS c панелью Vesta и бесплатный SSL Let’s Encrypt. Бот работает на PHP, поэтому подойдет и обычный хостинг.

Теперь самое интересное — программирование. После того, как связали наше приложение и бота, можно начинать писать логику.

Для того что бы работать с ботами, надо реализовать поддержку различных команд. В нашем случае мы добавили только одну — “Спасибо”. Механика до безумия простая: при её написании формируется сообщение и сразу же выписывается счёт.

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

В title пишем название товара. В description — его описание. В currency валюту, которую мы использовали. В качестве price указывается цена. Кстати, она делится на 100. Чтобы указать цену товара в 100 рублей, нужно поставить amount 10000. Не сложно, правда?

Окончательный наш код с логикой выглядел таким образом:

Payments 2.0 вышел совсем недавно. Главной проблемой стала неспособность платежных систем взаимодействовать с Telegram. Изначально мы выбрали ЮMoney, но он пока умеет работать только с первой версией. Остановились на Stripe, чтобы весь функционал был доступен.

Плюс стоит учитывать, что минимальная сумма пополнения — 100 рублей. И нет возможности настраивать поля в товаре. Например, оставить комментарии.

Настроив бота, добавьте его в ваш чат, выдав функции администратора. Он будет реагировать на ключевую фразу.
Важно: постарайтесь учесть написание такой фразы в разном регистре и даже на латинице. Предусмотрите все варианты, даже самые заковыристые с использованием латинских и кириллических букв. Так вы сделаете бота максимально удобным для пользователей.

Поиграть с ботом можно в нашем чате (реагирует на “Спасибо”). Если вы тоже настраивали бота с использованием Платежей 2.0 — делитесь опытом в комментариях. Об ошибках тоже сообщайте. Будем дополнять пост по мере появления ценных советов и рекомендаций.
Как вам кажется, для покупки каких услуг Платежи 2.0 подходят лучше всего?

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *