Загрузка...

How to solve the CryptoBot payment problem when creating an invoice

Thread in Python created by PowerDevil Dec 30, 2024. 207 views

  1. PowerDevil
    PowerDevil Topic starter Dec 30, 2024 12,967 Aug 27, 2022
    Python
    @router.callback_query(CryptoBotCurrencyCallback.filter())
    async def enter_crypto_bot_currency_handler(
    query: CallbackQuery, callback_data: CryptoBotCurrencyCallback, state: FSMContext):
    await query.message.delete()
    data = await state.get_data()
    cryptopay = AioCryptoPay(AIOCRYPTOPAY_TOKEN)

    amount = math.ceil((float(data['crypto_bot_sum']) * (1 + 3 / 100)) * 100) / 100
    invoice = await cryptopay.create_invoice(
    asset=CryptoBotCurrency(callback_data.currency).name,
    amount=await get_crypto_bot_sum(amount, CryptoBotCurrency(callback_data.currency).name),
    description="Payment",
    paid_btn_name="callback",
    paid_btn_url=f"https://t.me/{(await query.bot.me()).username}",
    expires_in=3600,
    allow_comments=True,
    allow_anonymous=True
    )
    await db.create_transaction(invoice.invoice_id)
    await cryptopay.close()
    await state.update_data(crypto_bot_currency=CryptoBotCurrency(callback_data.currency).name)
    await db.addcrypto(query.from_user.id, invoice.invoice_id, data["crypto_bot_sum"])
    await query.message.answer(
    msg_format(text_44, amount, invoice.pay_url),
    reply_markup=check_payment_kb(invoice.pay_url, invoice.invoice_id, 0, PaymentService.crypto_bot)
    )
    await state.set_state(state=None)
    [IMG]
     
  2. PowerDevil
    PowerDevil Topic starter Dec 30, 2024 12,967 Aug 27, 2022
    1. ChatGPT
      Привет, PowerDevil! Давай разберёмся с твоим кодом. Ты пытаешься создать инвойс с помощью CryptoBot в Python. Если у тебя возникают проблемы, давай посмотрим на возможные причины:

      1. **Токен**: Убедись, что `AIOCRYPTOPAY_TOKEN` корректный и имеет все необходимые права для создания инвойсов.

      2. **Сумма**: Проверь, правильно ли ты вычисляешь сумму. Убедись, что `data['crypto_bot_sum']` содержит корректное значение.

      3. **Асинхронность**: Убедись, что все асинхронные вызовы (например, `await cryptopay.create_invoice`) выполняются корректно и не блокируют выполнение.

      4. **Обработка ошибок**: Добавь обработку исключений, чтобы понять, где именно происходит ошибка. Например:
      Python

      try:
      invoice = await cryptopay.create_invoice(...)
      except Exception as e:
      print(f"Error creating invoice: {e}")
      5. **URL и кнопки**: Проверь, правильно ли формируются URL и кнопки. Убедись, что `query.bot.me()` возвращает корректное имя пользователя бота.

      Если у тебя есть конкретное сообщение об ошибке или проблема, дай знать, и мы попробуем разобраться более детально!
  3. ToSa
    ToSa Dec 30, 2024 guest, боже, храни кьют-рок. :beer::beer::beer: 24,040 Dec 18, 2021
    полную ошибочку сюда
     
    1. PowerDevil Topic starter
    2. ToSa
  4. derkown
    у тебя не может пайдантик распарсить все значения из ответа. перепроверь что все данные верно указаны по типу кредов и тд. вообще просто выведи что тебе апи выдает в самой либе (так делать плохо, но надо же как-то дебажить раз либа ниче не выдает конкретного)
     
  5. Кассандра
    [IMG]
    либа обновлялась 3 года назад
     
Top
Loading...