
03.01.2021, 23:47
|
|
Постоянный
Регистрация: 14.01.2019
Сообщений: 315
С нами:
3857626
Репутация:
98
|
|
Привет, увидел тему @S E V E N c автооплатой и решил сделать такое же на Python.
Что нам понадобится:
1) Python 3
2) Любая библиотека для работы с VK API (я буду использовать VKBottle)
3) Библиотека для работы с QIWI - pyQiwiP2P
После установки всего нам нужного приступаем к следующим этапам:
1) Переходим в раздел "Работа с API"
В данном разделе переходим в LongPoll API и включаем LongPoll, версию API выбираем 5.103
Переходим в "Типы событий" и включаем все события на "Входящие сообщения".
2) Переходим в раздел "Сообщения" и включаем сообщения группы.
Также там же переходим в раздел "Настройки для бота" и включаем возможности ботов.
Группа готова, переходим к коду, создаем Python файл и открываем его в любом текстовом редакторе.
Подключаем наши библиотеки:
Python:
Код:
from
vkbottle
.
bot
import
Bot
,
Message
from
pyqiwip2p
import
QiwiP2P
from
pyqiwip2p
.
types
import
QiwiCustomer
,
QiwiDatetime
Далее нам нужно передать токен ВК:
Python:
Код:
bot
=
Bot
(
"Токен ВК"
)
Для начала попробуем сделать реакцию на определенную команду, к примеру "/qiwi" и ответим на эту команду:
Python:
Код:
@bot.on.private_message
(
text
=
'/qiwi'
)
async
def
test
(
message
:
Message
)
:
print
(
message
)
await
message
.
answer
(
'Я отреагировал на твое сообщение!'
)
bot
.
run_forever
(
)

Теперь приступим к работе с QIWI, для оплаты мы будем использовать формы с оплатой.
Переходим на https://p2p.qiwi.com/, логинимся под свой кошелек.
Далее переходим в раздел "API" и создаем токен, сохраняем наш секретный ключ (не спутайте с PublicKey), в скрипте можно создать переменную с нашим ключом.

Где-то сверху вставляем данную строчку:
Python:
Код:
p2p
=
QiwiP2P
(
auth_key
=
"Секретный токен QIWI"
)
Сделаем генерацию ссылки на форму по команде "/qiwi":
Python:
Код:
@bot.on.private_message
(
text
=
'/qiwi'
)
async
def
test
(
message
:
Message
)
:
amount
=
1
# Сумма 1 рубль
lifetime
=
15
# Форма будет жить 15 минут
comment
=
'Купить арбуз'
# Комментарий
bill
=
p2p
.
bill
(
amount
=
amount
,
lifetime
=
lifetime
,
comment
=
comment
)
# Выставление счета
await
message
.
answer
(
f'Сумма:{amount}\nСсылка живет:{lifetime}минут\nСсылка:\n{bill.pay_url}'
)
# Отправляем ссылку человеку
bot
.
run_forever
(
)
Теперь напишем боту команду "/qiwi", он должен прислать нам ссылку на оплату:


Как мы видим, все работает!
Теперь нам надо проверить платеж от пользователя, сделать это можно разными способами. Логику проверки придумаете сами, советую записывать рандом номера в БД и сверять их. Сейчас я только покажу как проверять платеж по команде, например "/check".
Python:
Код:
@bot.on.private_message
(
text
=
'/check'
)
async
def
check
(
message
:
Message
)
:
status
=
qiwi
.
check_status
(
bill_id
)
# bill_id - номер платежа
if
status
==
'PAID'
:
# Если статус счета оплачен (PAID)
await
message
.
answer
(
'Оплата прошла успешно!'
)
else
:
# В другом случае
await
message
.
answer
(
'Вы не оплатили счет!'
)
Теперь проверим.

|
|
|