Поскольку я новичок в этом материале POST / GET HTTP, я могу ошибаться, поэтому я задаю свой вопрос двумя способами. Может быть, один способ будет лучше другого :)
Я разрабатываю Telegram Bot с помощью PyTelegramBotAPI, и он должен включать онлайн-платеж. Для онлайн-оплаты мне нужно, чтобы пользователь перешел по ссылке с помощью метода POST (это внешняя ссылка + мне нужно передать данные формы), но это вызывает у меня трудности.
I.
В моем коде я выполняю следующее:
req = requests.post(url=url, data=data)
Где url - это URL-адрес веб-сайта, на который должен быть перенаправлен клиент, а data - это данные, которые ему необходимо передать с запросом POST при перенаправлении .
Он отлично работает как запрос в Python, но, очевидно, не может перенаправить клиента на нужный веб-сайт.
Я попытался сгенерировать URL-адрес и передать его клиенту используя
url = url + urlencode(data=data)
Где url - это снова URL-адрес веб-сайта. Но в этом случае сайт сообщает мне, что использованный метод неправильный. Я предполагаю, что ссылка становится запросом GET вместо запроса POST.
Как я могу перенаправить клиента на эту ссылку с помощью метода POST?
II.
Другой способ Я задаю этот вопрос так:
Компания, которая обрабатывает онлайн-платежи, требует, чтобы они выполнялись с использованием следующей формы HTML:
<form action=”https://securesandbox.webpay.by/” method="post">
<input type=”hidden” name=”*scart” >
<input type=”hidden” name=”wsb_storeid” value=”11111111”>
<input type=”hidden” name=”wsb_order_num” value=”ORDER-12345678”>
<input type=”hidden” name=”wsb_currency_id” value=”BYN”>
<input type=”hidden” name=”wsb_version” value=”2”>
<input type=”hidden” name=”wsb_seed” value=”1242649174”>
<input type=”hidden” name=”wsb_signature” value=”124264917411111111ORDER-123456781BYN10123456”>
<input type=”hidden” name=”wsb_test” value=”1”>
<input type=”hidden” name=”wsb_invoice_item_name[0]” value=”Товар 1”>
<input type=”hidden” name=”wsb_invoice_item_quantity[0]” value=”2”>
<input type=”hidden” name=”wsb_invoice_item_price[0]” value=”10”>
<input type=”hidden” name=”wsb_total” value=”10”>
<input type="submit" value="Купить">
</form>
Это сработало бы, если бы я использовал HTML страниц, но поскольку мое веб-приложение является ботом Telegram, это не сработает. Поэтому мне нужно автоматически сгенерировать эту форму HTML в Python (а именно, мне нужно изменить поля «значения» для каждого платежа).
Как я могу имитировать эту форму HTML в моем Telegram Бот и перенаправить клиента после какого-то триггера?