ASP.NET Core - Как отправить ответ HTTPClient клиенту без перезагрузки - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь интегрировать платежный сервис в сайт ASP.NET Core 2.0. Страница оплаты вызывается путем отправки ФОРМЫ через POST на сайт оплаты, который возвращает саму страницу оплаты.

Мой подход заключается в том, чтобы начать процесс оплаты, позвонив в мой WEB API. Я создаю форму на сервере и использую HTTPClient.PostAsync, чтобы получить результат от поставщика услуг. Затем я хочу, чтобы браузер отобразил страницу оплаты, но я не могу передать результат из PostAsync клиенту вместе с его URL, файлами cookie, заголовками и т. Д.

Хотя я могу перенаправить URL-адрес, полученный в HTTPRespnseMessage.RequestMessage.RequestUri, но платежный сервис блокирует транзакцию из-за двойного доступа (сначала, когда я первоначально делаю это в вызове API, а затем, когда браузер загружает ее снова через перенаправление). Страница отображается правильно, но с сообщением об ошибке, что транзакция с такими же данными не может быть перезапущена.

Есть ли способ вернуть результат POST клиенту, как если бы он был загружен из браузера? Чтобы он отображал правильный URL-адрес страницы платежа в адресной строке и содержимое, загруженное в Content.ReadAsStringAsync ().

Без перенаправления максимум, чего я могу достичь сейчас, - это отправить контент в браузер, но иметь свой собственный URL-адрес WEB API в адресной строке, что приводит к нескольким проблемам, таким как не найденные файлы ресурсов, CSS и файлы cookie, и все отправленные сообщения ошибочно отправляются на мой веб-сервер.

Спасибо.

...