ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Python (https://forum.antichat.xyz/forumdisplay.php?f=205)
-   -   Делаем простую автооплату через QIWI (VK) (https://forum.antichat.xyz/showthread.php?t=1374794)

clrn1w 03.01.2021 23:47

Привет, увидел тему @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
(
)



https://forum.antichat.xyz/attachmen...e8a9276351.png

Теперь приступим к работе с QIWI, для оплаты мы будем использовать формы с оплатой.

Переходим на https://p2p.qiwi.com/, логинимся под свой кошелек.

Далее переходим в раздел "API" и создаем токен, сохраняем наш секретный ключ (не спутайте с PublicKey), в скрипте можно создать переменную с нашим ключом.
https://forum.antichat.xyz/attachmen...0a03206b2e.png

Где-то сверху вставляем данную строчку:

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", он должен прислать нам ссылку на оплату:

https://forum.antichat.xyz/attachmen...c9f21a33e0.png

https://forum.antichat.xyz/attachmen...69982b857d.png

Как мы видим, все работает!

Теперь нам надо проверить платеж от пользователя, сделать это можно разными способами. Логику проверки придумаете сами, советую записывать рандом номера в БД и сверять их. Сейчас я только покажу как проверять платеж по команде, например "/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
(
'Вы не оплатили счет!'
)





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


https://forum.antichat.xyz/attachmen...c0d6fd5c5a.png

Disturbed 03.01.2021 23:58

Для телеги сможешь найти библиотеку?

winten 04.01.2021 00:05

Цитата:

Сообщение от Disturbed

Для телеги сможешь найти библиотеку?

aiogram для самого бота, библиотека для киви та же

а вообще зачем делать по 300 гайдов на одну тему да еще и по использованию АПИ????

clrn1w 04.01.2021 00:08

Цитата:

Сообщение от Disturbed

Для телеги сможешь найти библиотеку?

aiogram, telebot

kin4stat 04.01.2021 04:12

Цитата:

Сообщение от clrn1w

telebot

Он синхронный

randazzo 04.01.2021 05:09

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

clrn1w 04.01.2021 09:56

Цитата:

Сообщение от KiN4StAt

Он синхронный

Знаю

Цитата:

Сообщение от randazzo

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

В интернете не видел работы с P2P киви на python. Видел одну тему, но там библиотека устаревшая и не рабочая

randazzo 04.01.2021 10:06

Цитата:

Сообщение от clrn1w

В интернете не видел работы с P2P киви на python. Видел одну тему, но там библиотека устаревшая и не рабочая

https://github.com/WhiteApfel/pyQiwiP2P#что-есть ни одной работы.

как гайд эта тема говно, "я вам тут накидал чет, если захотите - доделаете"

clrn1w 04.01.2021 11:03

Цитата:

Сообщение от randazzo

https://github.com/WhiteApfel/pyQiwiP2P#что-есть ни одной работы.
как гайд эта тема говно, "я вам тут накидал чет, если захотите - доделаете"

Библиотека не популярна, я ее откопал *** знает откуда

Leatington 04.01.2021 11:04

Где мой любимый PHP?

randazzo 04.01.2021 11:16

Цитата:

Сообщение от clrn1w

Библиотека не популярна, я ее откопал *** знает откуда

https://forum.antichat.xyz/attachmen...9428fd3683.png

сочувствую

clrn1w 04.01.2021 11:20

Цитата:

Сообщение от randazzo

сочувствую

Хуй знает чё ты на меня наезжаешь? Если не хочешь видеть данную тему - удаляй

T1cKz 04.01.2021 17:27

Та норм, чё

st1vaha 04.01.2021 18:52

Цитата:

Сообщение от randazzo

сочувствую

Тоже чела не понимаю, тема вроде уже и так понятна, он еще одну делает, типо челам лень загуглить?

odlidox 25.01.2021 21:35

после того как прописываю /check, в терминале такая ошибка:

Traceback (most recent call last):

File "C:\Users\admin\AppData\Local\Programs\Python\Pyth on39\lib\site-packages\vkbottle\dispatch\bot_router.py", line 20, in route

await view.handle_event(event, ctx_api, self.state_dispenser)

File "C:\Users\admin\AppData\Local\Programs\Python\Pyth on39\lib\site-packages\vkbottle\dispatch\views\bot\message.py", line 60, in handle_event

handler_response = await handler.handle(message, **context_variables)

File "C:\Users\admin\AppData\Local\Programs\Python\Pyth on39\lib\site-packages\vkbottle\dispatch\handlers\from_func_hand ler.py", line 26, in handle

return await self.handler(event, **context)

File "C:\Users\admin\Desktop\main.py", line 18, in check

status = qiwi.check_status(bill_id)

NameError: name 'qiwi' is not defined

помогите решить

kin4stat 27.01.2021 13:31

Цитата:

Сообщение от odlidox

после того как прописываю /check, в терминале такая ошибка:

Traceback (most recent call last):
File "C:\Users\admin\AppData\Local\Programs\Python\Pyth on39\lib\site-packages\vkbottle\dispatch\bot_router.py", line 20, in route
await view.handle_event(event, ctx_api, self.state_dispenser)
File "C:\Users\admin\AppData\Local\Programs\Python\Pyth on39\lib\site-packages\vkbottle\dispatch\views\bot\message.py", line 60, in handle_event
handler_response = await handler.handle(message, **context_variables)
File "C:\Users\admin\AppData\Local\Programs\Python\Pyth on39\lib\site-packages\vkbottle\dispatch\handlers\from_func_hand ler.py", line 26, in handle
return await self.handler(event, **context)
File "C:\Users\admin\Desktop\main.py", line 18, in check
status = qiwi.check_status(bill_id)
NameError: name 'qiwi' is not defined

помогите решить

Не трогай это пожалуйста

clrn1w 27.01.2021 16:48

Цитата:

Сообщение от odlidox

после того как прописываю /check, в терминале такая ошибка:

Traceback (most recent call last):
File "C:\Users\admin\AppData\Local\Programs\Python\Pyth on39\lib\site-packages\vkbottle\dispatch\bot_router.py", line 20, in route
await view.handle_event(event, ctx_api, self.state_dispenser)
File "C:\Users\admin\AppData\Local\Programs\Python\Pyth on39\lib\site-packages\vkbottle\dispatch\views\bot\message.py", line 60, in handle_event
handler_response = await handler.handle(message, **context_variables)
File "C:\Users\admin\AppData\Local\Programs\Python\Pyth on39\lib\site-packages\vkbottle\dispatch\handlers\from_func_hand ler.py", line 26, in handle
return await self.handler(event, **context)
File "C:\Users\admin\Desktop\main.py", line 18, in check
status = qiwi.check_status(bill_id)
NameError: name 'qiwi' is not defined

помогите решить

Переменная qiwi не обявлена.

yung milonov 08.02.2021 21:28

прошу фулл код из-за ошибки

Цитата:

Сообщение от Спойлер

Traceback (most recent call last):

File "C:\Users\79277\main.py", line 109, in

status = qiwi.check_status(bill_id) # bill_id - номер платежа

NameError: name 'qiwi' is not defined

не у меня одного она есть

yung milonov 08.02.2021 22:04

Цитата:

Сообщение от odlidox

после того как прописываю /check, в терминале такая ошибка:

Traceback (most recent call last):
File "C:\Users\admin\AppData\Local\Programs\Python\Pyth on39\lib\site-packages\vkbottle\dispatch\bot_router.py", line 20, in route
await view.handle_event(event, ctx_api, self.state_dispenser)
File "C:\Users\admin\AppData\Local\Programs\Python\Pyth on39\lib\site-packages\vkbottle\dispatch\views\bot\message.py", line 60, in handle_event
handler_response = await handler.handle(message, **context_variables)
File "C:\Users\admin\AppData\Local\Programs\Python\Pyth on39\lib\site-packages\vkbottle\dispatch\handlers\from_func_hand ler.py", line 26, in handle
return await self.handler(event, **context)
File "C:\Users\admin\Desktop\main.py", line 18, in check
status = qiwi.check_status(bill_id)
NameError: name 'qiwi' is not defined

помогите решить

status = qiwi.check_status(bill_id) замени на status = bill.status

lovii 11.04.2021 16:40

Неплохо. Но очень стандартно и просто.

Лично сам я сделал себе авто-оплату через хук.

Чел просто пополняет и ему приходит уведомление, ничего подтверждать и т.д. не надо.

За вкботл мое уважение

dzin 15.06.2021 10:33

Цитата:

Сообщение от Disturbed

Для телеги сможешь найти библиотеку?

Разницы нет, главное самая библиотека киви

clicore 28.06.2021 13:53

Цитата:

Сообщение от randazzo

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

А надо дрочиться писать на плюсах бота что ли? Всё что делается легче - это говно, да? Может ты просто дрочер, который любит въёбывать своё время впустую?

randazzo 28.06.2021 16:30

Цитата:

Сообщение от unrealpowerful

А надо дрочиться писать на плюсах бота что ли? Всё что делается легче - это говно, да? Может ты просто дрочер, который любит въёбывать своё время впустую?

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

loossklxm 25.07.2021 17:24

Как в параметре customFields передавать переменную "themeCode":"Кодпарметра"?

p2p.bill или куда?


Время: 21:21