Не знаю актуально ли дос их пор, но надеюсь кому-то пригодиться и этот человек не будет совершать моих ошибок.
Нет, после оплаты не возникает ивента. Приходит лишь сообщение с определённым полем message.attachments под названием VkpayTransactionObject (
см. больше тут), потому, лучше сделать так:
@bot.on.private_message(text='подписка')
async def subscribe_handler(message:Message):
group_id = 12345678 # Вставьте сюда ваш group_id
amount = 100 # Вставьте сюда сумму которую человек должен оплатить
pay = (Keyboard(one_time=False, inline=True)
.add(VKPay(payload={'pays': 0}, hash=f'action=pay-to-group&amount={amount}&group_id={num}')
)).get_json()
await message.answer('Вот кнопка для оплаты подписки', keyboard=pay)
@bot.on.private_message(payload={'pays': 0})
async def people_was_pay(message:Message):
await message.answer(f'Вы успешно оплатили подписку в размере {message.attachments[0].amount} рублей!')
По поводу моего кода не очень уверен, возможно путь (message.attachments[0].amount) не совсем верный, просто в моём боте, я передавал сумму и другие данные вместе с полезной нагрузкой (payload). Хотел бы уточнить, что бот среагирует на payload только после оплаты т.е. отправки сообщения. Так же посоветую не прописывать
pip3 install --upgrade vkbottle-types
сразу, лучше устанавливать сразу с репозитория на гитхабе
pip install -U https://github.com/vkbottle/vkbottle-types/archive/master.zip
(
Такой совет написан здесь) дабы не было каких-либо ошибок.