В данном посте мы научимся принимать платежи в Telegram боте с помощью API Yoomoney.
Введение
Начну с того, что я не так давно хотел создать магазин электронных товаров в Telegram. И столкнулся с проблемой, что на момент работы не было готовых решений. Хотелось принимать платежи без ИП и всякой этой движухи. Поэтому мой выбор был между Qiwi и Yoomoney (раньше Yandex Деньги). Сам я из Беларуси. Поэтому проще получить «Идентифицированный» аккаунт было у Yoomoney.
В итоге создал библиотеку yoomoney для Python.
Если данный пост вам помог, то поставьте звезду на GitHub. Мне будет очень приятно!
Описание
- Получаем токен
- Проверяем токен
- Как выставить счет на оплату
- Проверка оплаты
Получаем токен
Для того, чтобы пользоваться API Yoomoney нужно получить специальный токен. Первым делом регистрируем приложение:
1. Зайдите в кошелек ЮMoney. Если кошелька нет, создайте его.
2. Перейдите на страницу Регистрация приложения.
Осторожно! Yoomoney блокирует кошельки и ворует деньги!
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, 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
Плагин ЮMoney WooCommerce для самозанятых, физ.лиц
Продавец: Самозанятый
Винниченко В.Л.
ИНН 780622694410
ПЛАГИН ОТ АВТОРА
Плагин интеграции ЮMoney с Woocommerce с помощью которого можно быстро начать принимать платежи на сайте. Простая и быстрая настройка. Доступные способы оплаты: с кошелька ЮMoney; картами Visa, Mastercard, Мир
Цифровые товары надлежащего качества в электронном виде не подлежат обмену или возврату.
18 отзывов на Плагин ЮMoney WooCommerce для самозанятых, физ.лиц
Оценка 5 из 5
Ю*** – 13 июня 2023
Хороший плагин. Разработчик плагина всегда на связи и готов помочь если что-то не получается, хотя на самом деле в настройке плагина нет ничего сложного! Рекомендую,
Оценка 5 из 5
U***** – 14 января 2023
Спасибо большое автору за плагин! Давно искал что бы без танцев с бубном заказы автоматически выполнялись.
Отличный плагин, супербыстрая поддержка. Всем советую.
Оценка 5 из 5
q**** – 10 ноября 2022
Отличный плагин, работает без ошибок и сбоев.
Использую его на двух своих сайтах.
Всем рекомендую!
Оценка 5 из 5
a******** – 16 июля 2022
16 июля 2022 года, купил, РАБОТАЕТ БЕЗ НАРЕКАНИЙ, НАСТРОЙКА ЗА 3 МИНУТЫ. Спасибо.
Оценка 4 из 5
V** – 15 мая 2022
Добрый день. Подскажите – плагин ещё актуальный ? Работает корректно ? Просто отзывы двух летней давности.
Оценка 5 из 5
Y****** – 26 декабря 2021
Отличный плагин и отличная команда разработчиков, очень отзывчивые ребята. Всегда на связи и готовы помочь. Я приобрел у них этот плагин и не пожалел. РЕКОМЕНДУЮ.
Оценка 5 из 5
Д****** – 05 сентября 2021
Здравствуйте, подскажите, плагин поддерживает автоматическую доставку скачиваемых продуктов после оплаты?
Оценка 5 из 5
A**** – 30 апреля 2021
Большое спасибо! Месяц назад Робокасса прекратила работу с физ лицами, пришлось искать выход. Сейчас я даже рада, учитывая насколько данный плагин выигрывает. Никаких тебе бешеных комиссий при переводах и деньги сразу оказываются там где надо.)
Добавила ваш сервис в закладочки.)
Оценка 4 из 5
А*** – 24 апреля 2021
Подскажите, плагин только для самозанятых или для обычных физлиц тоже подойдёт?
Оценка 5 из 5
i******* – 12 января 2021
Плагин огонь! Купил, установил, столкнулся с проблемой, написал мне сразу ответили и все решили. Ребятам разработчикам респект за то что делаете такие классные продукты и по доступной цене! Рекомендую.
Оценка 5 из 5
И*** – 10 января 2021
Хороший плагин работает супер, большое спасибо. Простая установка. Хорошая быстрая обратная связь с разработчиком.
Оценка 5 из 5
A**** – 29 декабря 2020
Здравствуйте. на WP 5.6 уже пробовали? Работает? И второй вопрос, Оплата активации аккаунта возможна с помощью этого плагина? Спасибо!
Источник: wp-club.ru