Загрузка...

Покупка нфт подарка с маркетплейса телеграмм

Тема в разделе Python создана пользователем Посетитель 11 июн 2025 в 13:08. (поднята 12 июн 2025 в 13:21) 155 просмотров

  1. Посетитель
    Посетитель Автор темы 11 июн 2025 в 13:08 https://rembo.fun БОЛЬШИЕ СИСИ https://lolz.live/threads/8360421 1206 4 янв 2020
    Привет. У меня проблема. Пытаюсь купить подарок на маркетсплейсе телеграмм через либу pyrofork и ее доступные методы.
    Столкнулся с проблемой:

    Python
    ERROR:__main__:Ошибка при покупке подарка: Telegram says: [400 INPUT_REQUEST_TOO_LONG] (caused by "payments.SendPaymentForm") Pyrogram 2.3.64 thinks: The input request is too
    long
    Сама функция покупки:

    Python
    async def buy_star_gift(client: Client, slug: str):
    try:
    invoice = InputInvoiceStarGiftResale(
    slug=slug,
    to_id=InputPeerSelf()
    )

    payment_form = await client.invoke(GetPaymentForm(invoice=invoice))
    print(f"Получена форма оплаты: {payment_form.form_id}")

    result = await client.invoke(
    SendPaymentForm(
    form_id=payment_form.form_id,
    invoice=payment_form.invoice,
    credentials=InputPaymentCredentials(
    data=DataJSON(data=json.dumps({
    "payment_method": "XTR",
    "amount": payment_form.invoice.prices[0].amount,
    "currency": payment_form.invoice.currency
    }))
    )
    )
    )

    logger.info(f"Успешная покупка подарка: {result}")
    return result

    except Exception as e:
    logger.error(f"Ошибка при покупке подарка: {e}")
    return None

    Как я понимаю,ошибка в неверном содержимом DataJSON
    Кто то сможет подсказать,какое содержимое должно быть у него? Я уже честно так заёбся :obeme:
    закину 50 рубликов на лолз за помощь
     
    11 июн 2025 в 13:08 Изменено
  2. garant_aerlin
    почему через tonnel или portal не покупаешь?
     
    1. Посетитель Автор темы
      garant_aerlin, код для маркетплейса нужен именно
  3. Посетитель
    Посетитель Автор темы 11 июн 2025 в 13:40 https://rembo.fun БОЛЬШИЕ СИСИ https://lolz.live/threads/8360421 1206 4 янв 2020
    Python
    async def buy_star_gift(client: Client, slug: str):

    try:

    invoice = InputInvoiceStarGiftResale(

    slug=slug,

    to_id=InputPeerSelf()

    )



    payment_form = await client.invoke(GetPaymentForm(invoice=invoice))

    print(f"Получена форма оплаты: {payment_form.form_id}")

    logger.info(f"Детали формы оплаты: {payment_form}")



    payment_data = {

    "amount": payment_form.invoice.prices[0].amount,

    "currency": "XTR"

    }



    result = await client.invoke(

    SendPaymentForm(

    form_id=payment_form.form_id,

    invoice=payment_form.invoice,

    credentials=InputPaymentCredentials(

    data=DataJSON(data=json.dumps(payment_data))

    )

    )

    )



    logger.info(f"Успешная покупка подарка: {result}")

    return result



    except Exception as e:

    logger.error(f"Ошибка при покупке подарка: {e}")

    return None



    Попробовал такой способ - ошибка такая же
     
  4. skskd
    skskd 11 июн 2025 в 17:26 Discover L.I.M.P. say it 24 17 авг 2020
    1. ChatGPT
      Привет, skskd! Давай попробуем разобраться с этой ошибкой.

      Ошибка `[400 INPUT_REQUEST_TOO_LONG]` указывает на то, что запрос, который ты отправляешь, слишком длинный. Это может быть связано с тем, что данные, которые ты передаешь в `InputPaymentCredentials`, не соответствуют ожидаемому формату или содержат слишком много информации.

      Вот несколько шагов, которые могут помочь:

      1. **Проверь формат данных**: Убедись, что данные, которые ты передаешь в `DataJSON`, соответствуют ожидаемому формату. Возможно, тебе нужно уточнить, какие именно поля и значения ожидаются сервером Telegram.

      2. **Минимизируй данные**: Убедись, что ты передаешь только необходимые данные. Возможно, некоторые поля можно убрать или сократить.

      3. **Документация и примеры**: Проверь документацию Pyrogram и Telegram API на наличие примеров использования `SendPaymentForm` и `InputPaymentCredentials`. Это может дать подсказки о том, как правильно формировать запрос.

      4. ****** и отладка**: Попробуй добавить больше *****, чтобы понять, какие именно данные ты отправляешь и в каком виде. Это может помочь выявить проблему.

      Если у тебя есть доступ к документации или примерам, которые описывают, как должен выглядеть запрос, это будет очень полезно. Если нет, попробуй поискать в интернете или на форумах, возможно, кто-то уже сталкивался с подобной проблемой.

      Если у тебя есть еще вопросы или нужна дополнительная помощь, дай знать!
Загрузка...
Top