
sync def buy_sub(callback_query: CallbackQuery):
db = read_data()
if db[str(callback_query.from_user.id)]['sub'] is False:
key = InlineKeyboardBuilder()
key.button(text="ЮМани", callback_data="youm")
key.button(text="Payok", callback_data="payok")
key.adjust(1)
await callback_query.message.answer("Выбирите метод оплаты: ", reply_markup=key.as_markup())
else:
await callback_query.message.answer("Ваша подписка уже оформлена!")
async def yoomoney(callback_query: CallbackQuery):
quickpay = Quickpay(
receiver="xxxxxxxxxxxx",
quickpay_form="shop",
targets="Sponsor this project",
paymentType="SB",
sum=100,
label=f"{callback_query.from_user.id}",
)
print(quickpay.base_url)
print(quickpay.redirected_url)
key = InlineKeyboardBuilder()
key.button(text="Я оплатил", callback_data="check")
key.button(text="Оплатить подписку", url=quickpay.redirected_url)
await callback_query.message.answer("Для продолжения воспользуйтесь кнопками в меню: ", reply_markup=key.as_markup())
async def payok(callback_query: CallbackQuery):
quick = QuickPay(amount=200,
currency="RUB",
desc="Chat SUB",
shop=0000,
secret="",
payment=callback_query.from_user.id)
key = InlineKeyboardBuilder()
key.button(text="Я оплатил", callback_data="checkk")
key.button(text="Оплатить подписку", url=quick.generate_paylink())
await callback_query.message.answer("Для продолжения воспользуйтесь кнопками в меню: ", reply_markup=key.as_markup())
async def check_payment(callback_query: CallbackQuery):
db = read_data()
if callback_query.data == "checkk":
client = Client(token=client_token)
history = client.operation_history(label=f"{callback_query.from_user.id}")
for operation in history.operations:
if operation.status == "success":
db[str(callback_query.from_user.id)]['sub'] = True
db[str(callback_query.from_user.id)]['time'] = (
datetime.datetime.now() + SUBSCRIPTION_DURATION
).isoformat()
write_data(db)
await callback_query.message.answer("Оплата прошла успешно!")
break
else:
await callback_query.answer("Вы еще не оплатили!")
break
elif callback_query.data == "check":
client = Client(token=client_token)
history = client.operation_history(label=f"{callback_query.from_user.id}")
for operation in history.operations:
if operation.status == "success":
db[str(callback_query.from_user.id)]['sub'] = True
db[str(callback_query.from_user.id)]['time'] = (
datetime.datetime.now() + SUBSCRIPTION_DURATION
).isoformat()
write_data(db)
await callback_query.message.answer("Оплата прошла успешно!")
break
else:
await callback_query.answer("Вы еще не оплатили!")
break