Разрабатываю бота для своего интернет-магазина. Дошел до момента осуществление платежей. Вызываю окно платежа(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 день над этим вопросом мучаюсь, подскажите, пожалуйста, в чем проблема и как ее исправить.