@gdr102

Почему не отображаются способы доставки в телеграм боте aiogram 3?

Разрабатываю бота для своего интернет-магазина. Дошел до момента осуществление платежей. Вызываю окно платежа(bot.send_invoice()). Далее обрабатываю shipping_query, который должен выводить доступные способы доставки по РФ
sdek = ShippingOption(id='sdek', title='СДЭК', prices=[LabeledPrice(label='Доставка СДЭК', amount=10000)])
pochta = ShippingOption(id='pochta', title='Почта России', prices=[LabeledPrice(label='Доставка Почта России', amount=11000)])

# убрал из кода лишние переменные, чтобы не отвлекали.
@router.callback_query(F.data.startswith('order_'))
async def order(callback: CallbackQuery):
    item_id = callback.data.split('_')[1]
    size = callback.data.split('_')[2]

    msg = await bot.send_invoice(
        chat_id=callback.message.chat.id,
        title=title,
        description=description,
        payload=str(item.id),
        provider_token=PAY_TOKEN,
        currency='RUB',
        prices=[
            LabeledPrice(
                label=item.name,
                amount=59900
            )
        ],
        start_parameter='startBot',
        photo_url=DOMAIN + photo[0],
        photo_height=height,
        photo_width=width,
        photo_size=length,
        need_phone_number=True,
        need_shipping_address=True,
        request_timeout=60,
        is_flexible=True,
        reply_markup=await kb_order(item_id, item.retail_price, item.catalog),
    )

@router.shipping_query()
async def process_shipping_query(shipping_query: ShippingQuery):
    print(shipping_query)
    
    shipping_options = []

    if shipping_query.shipping_address.country_code == 'RU':
        shipping_options.append(sdek)
        shipping_options.append(pochta)
    else:
        return await shipping_query.answer(ok=False, error_message='На данный момент мы работаем только по Российской Федерации')

    await shipping_query.answer(ok=True, shipping_options=shipping_options)


Через ПК все работает как надо. Через мобильные устройства(android, iphone) при первом заказе +- всегда все работает как надо. Если при заказе пользователь заполняет необходимые данные и оставляет галочку на "сохранить информацию на будущее", то при последующих заказах у него не будут отображаться способы доставки. Хоть что изменяй, но их не покажет и соответственно при нажатии на кнопку "оплатить" он выдает ошибку что не выбран способ доставки.
Уже 2 день над этим вопросом мучаюсь, подскажите, пожалуйста, в чем проблема и как ее исправить.

k-XVzBmJReI.jpg?size=786x1280&quality=96&sign=0977bab79afcc2e484d6699e21a9eb92&type=album
ivoXQvrsTDs.jpg?size=789x1280&quality=96&sign=ba3179450207870ab4bfb7b3ceee9d32&type=album
  • Вопрос задан
  • 20 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы