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

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

Введение

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

Поэтому проще получить «Идентифицированный» аккаунт было у Yoomoney.

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

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

Описание

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

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

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

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

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

Прикладной Python: Telegram бот для приема платежей на Flask с нуля.

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

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

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

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

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

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

from yoomoney import Authorize Authorize( client_id=»YOUR_CLIENT_ID», redirect_uri=»YOUR_REDIRECT_URI», scope=[«account-info», «operation-history», «operation-details», «incoming-transfers», «payment-p2p», «payment-shop», ] )

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

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

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

from yoomoney import Client token = «YOUR_TOKEN» client = Client(token) user = client.account_info() print(«Account number:», user.account) print(«Account balance:», user.balance) print(«Account currency code in ISO 4217 format:», user.currency) print(«Account status:», user.account_status) print(«Account type:», user.account_type) print(«Extended balance information:») for pair in vars(user.balance_details): print(«t—>», pair, «:», vars(user.balance_details).get(pair)) print(«Information about linked bank cards:») cards = user.cards_linked if len(cards) != 0: for card in cards: print(card.pan_fragment, » — «, card.type) else: print(«No card is linked to the account»)
Account number: 410019014512803 Account balance: 999999999999.99 Account currency code in ISO 4217 format: 643 Account status: identified Account type: personal Extended balance information: —> total : 999999999999.99 —> available : 999999999999.99 —> deposition_pending : None —> blocked : None —> debt : None —> hold : None Information about linked bank cards: No card is linked to the account

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

Еще по теме:  Как посмотреть медиа в Телеграмме в чате

Telegram магазин на Python #4 оплата заказа в криптовалюте ч1

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

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

from yoomoney import Quickpay quickpay = Quickpay( receiver=»410019014512803″, quickpay_form=»shop», targets=»Sponsor this project», paymentType=»SB», sum=150, ) print(quickpay.base_url) print(quickpay.redirected_url)

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

https://yoomoney.ru/quickpay/confirm.xml?receiver=410019014512803targets=Sponsor%20this%20projectsum=150 https://yoomoney.ru/transfer/quickpay?requestId=343532353937313933395f66326561316639656131626539326632616434376662373665613831373636393537613336383639

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

Форма оплаты

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

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

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

from yoomoney import Quickpay quickpay = Quickpay( receiver=»410019014512803″, quickpay_form=»shop», targets=»Sponsor this project», paymentType=»SB», sum=150, lebel=»a1b2c3d4e5″ ) print(quickpay.base_url) print(quickpay.redirected_url)

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

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

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

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

from yoomoney import Client token = «YOUR_TOKEN» client = Client(token) history = client.operation_history(label=»a1b2c3d4e5″) print(«List of operations:») print(«Next page starts with: «, history.next_record) for operation in history.operations: print() print(«Operation:»,operation.operation_id) print(«tStatus —>», operation.status) print(«tDatetime —>», operation.datetime) print(«tTitle —>», operation.title) print(«tPattern id —>», operation.pattern_id) print(«tDirection —>», operation.direction) print(«tAmount —>», operation.amount) print(«tLabel —>», operation.label) print(«tType —>», operation.type)

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

List of operations: Next page starts with: None Operation: 670278348725002105 Status —> success Datetime —> 2021-10-10 10:10:10 Title —> Пополнение с карты ****4487 Pattern id —> None Direction —> in Amount —> 150.0 Label —> a1b2c3d4e5 Type —> deposition

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

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

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

Источник: temofeev.ru

Реализация оплаты в телеграмм боте

Необходимо реализовать оплату в телеграмм боте, что для этого необходимо и какая платёжная система или сервис приёма платежей подойдёт без открытия ООО/ИП.

Отслеживать
задан 15 июл 2021 в 14:54
27 1 1 серебряный знак 7 7 бронзовых знаков

Я не осведомлён в этой теме, поэтому, если кто-то может просветить, будьте добры или подкиньте материалы для чтения

15 июл 2021 в 14:58

необходимо почитать статью 171 УК РФ. Осуществление предпринимательской деятельности без регистрации или без лицензии либо без аккредитации в национальной системе аккредитации наказывается штрафом в размере до трехсот тысяч рублей или в размере заработной платы или иного дохода осужденного за период до двух лет, либо обязательными работами на срок до четырехсот восьмидесяти часов, либо арестом на срок до шести месяцев.

15 июл 2021 в 15:27
15 июл 2021 в 16:56

Еще по теме:  Блог музыканта в Телеграм

но регистрироваться в фнс всёравно нужно.и перед изучением платёжных систем лучше почитать законы, ато патом сюрприз будет.

15 июл 2021 в 17:58
Телеграм-бот Donate позволяет принимать оплату во многих валютах, в том числе и в крипте
8 сен 2022 в 20:42

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Платёжные боты существуют в Telegram с 2017 года. С их помощью можно безопасно оплачивать товары и услуги вроде доставки пиццы, не покидая приложения.

Для оплаты можно использовать любое приложение – в том числе Telegram для компьютеров. Покупатель также может оставить чаевые, чтобы поддержать любимого автора, кафе или магазин.

Платформа для платежей открытая и бесплатная – Telegram не берёт комиссии и не хранит платежную информацию. Реквизиты отправляются напрямую платежной системе, а адрес для доставки — продавцу, чтобы он мог отправить товар.

Испытать возможности на бесплатных тестовых товарах и услугах можно в этом канале.

На данный момент Telegram поддерживает платежи из более чем 200 стран через следующие платежные системы:

  • Stripe
  • YooMoney (ЮSelf — бесплатный сервис для самозанятых)
  • Sberbank
  • Tranzzo
  • Payme
  • CLICK
  • LiqPay
  • ECOMMPAY
  • PayMaster

Для подключения оплаты:

Источник: ru.stackoverflow.com

Как принимать платежи в 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

from yoomoney import Authorize Authorize( client_id=»YOUR_CLIENT_ID», redirect_uri=»YOUR_REDIRECT_URI», scope=[«account-info», «operation-history», «operation-details», «incoming-transfers», «payment-p2p», «payment-shop», ] )

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

Еще по теме:  Значок плейстатиона в Телеграм

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

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

from yoomoney import Client token = «YOUR_TOKEN» client = Client(token) user = client.account_info() print(«Account number:», user.account) print(«Account balance:», user.balance) print(«Account currency code in ISO 4217 format:», user.currency) print(«Account status:», user.account_status) print(«Account type:», user.account_type) print(«Extended balance information:») for pair in vars(user.balance_details): print(«t—>», pair, «:», vars(user.balance_details).get(pair)) print(«Information about linked bank cards:») cards = user.cards_linked if len(cards) != 0: for card in cards: print(card.pan_fragment, » — «, card.type) else: print(«No card is linked to the account»)
Account number: 410019014512803 Account balance: 999999999999.99 Account currency code in ISO 4217 format: 643 Account status: identified Account type: personal Extended balance information: —> total : 999999999999.99 —> available : 999999999999.99 —> deposition_pending : None —> blocked : None —> debt : None —> hold : None Information about linked bank cards: No card is linked to the account

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

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

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

from yoomoney import Quickpay quickpay = Quickpay( receiver=»410019014512803″, quickpay_form=»shop», targets=»Sponsor this project», paymentType=»SB», sum=150, ) print(quickpay.base_url) print(quickpay.redirected_url)

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

https://yoomoney.ru/quickpay/confirm.xml?receiver=410019014512803targets=Sponsor%20this%20projectsum=150 https://yoomoney.ru/transfer/quickpay?requestId=343532353937313933395f66326561316639656131626539326632616434376662373665613831373636393537613336383639

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

Форма оплаты

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

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

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

from yoomoney import Quickpay quickpay = Quickpay( receiver=»410019014512803″, quickpay_form=»shop», targets=»Sponsor this project», paymentType=»SB», sum=150, label=»a1b2c3d4e5″ ) print(quickpay.base_url) print(quickpay.redirected_url)

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

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

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

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

from yoomoney import Client token = «YOUR_TOKEN» client = Client(token) history = client.operation_history(label=»a1b2c3d4e5″) print(«List of operations:») print(«Next page starts with: «, history.next_record) for operation in history.operations: print() print(«Operation:»,operation.operation_id) print(«tStatus —>», operation.status) print(«tDatetime —>», operation.datetime) print(«tTitle —>», operation.title) print(«tPattern id —>», operation.pattern_id) print(«tDirection —>», operation.direction) print(«tAmount —>», operation.amount) print(«tLabel —>», operation.label) print(«tType —>», operation.type)

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

List of operations: Next page starts with: None Operation: 670278348725002105 Status —> success Datetime —> 2021-10-10 10:10:10 Title —> Пополнение с карты ****4487 Pattern id —> None Direction —> in Amount —> 150.0 Label —> a1b2c3d4e5 Type —> deposition

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

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

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

Источник: habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...