Показать сообщение отдельно

  #1  
Старый 03.01.2021, 23:47
clrn1w
Постоянный
Регистрация: 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
(
'Вы не оплатили счет!'
)




Теперь проверим.



 
Ответить с цитированием