ASP.net c # отправьте форму от имени пользователя - PullRequest
0 голосов
/ 06 октября 2010

У меня есть кнопка ASP, при нажатии на которую она вызывает функцию, которая добавляет информацию о заказе в мою базу данных. Следующим этапом процесса заказа является перевод пользователя на платежный шлюз с помощью этой формы:

<form action="https://select-test.wp3.rbsworldpay.com/wcc/purchase" name="BuyForm" method="POST">
<input type="hidden" name="instId"  value="151711">
<input type="hidden" name="cartId" value="abc123">
<input type="hidden" name="currency" value="GBP">
<input type="hidden" name="amount"  value="1221">
<input type="hidden" name="desc" value="">
<input type="hidden" name="testMode" value="100">
<input type="submit" value="To Payment!">
</form>

Однако мне бы очень хотелось, чтобы пользователь:

нажата кнопка заказа -> функция заказа Позвонил -> Пользователь автоматически перешел на страница заказа

Как предполагается:

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

Есть ли в c # возможность перенаправить пользователя на страницу заказа и отправить с ним данные формы?

Ответы [ 3 ]

2 голосов
/ 06 октября 2010

Вы можете перенаправить из обработчика отправки формы первого заказа:

Response.Redirect("https://select-test.wp3.rbsworldpay.com/wcc/purchase?instId=151711&cartId=abc123&currency=GBP&amount=1221&desc=&testMode=100");

Обратите внимание, что параметры вашей формы в настоящее время открыты для взлома, независимо от того, отправляете ли вы через GET или POST.Я уверен, что у WorldPay есть некоторые меры безопасности, которые вы можете использовать для предотвращения и / или обнаружения взлома.Вы должны использовать их!

Редактировать ...

WorldPay позволит вам отправить хэш вместе с параметрами платежа чтобы помочь предотвратить вмешательство.Это должно остановить любое любительское вмешательство в строку запроса;может ли он остановить решительного злоумышленника, это другой вопрос.

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

1 голос
/ 06 октября 2010

Вы можете использовать Response.Redirect("OtherPage.aspx"); в конце вашего обработчика событий.Используя этот метод, вы можете добавить элементы в строку запроса (например, идентификатор заказа) ... Response.Redirect("OtherPage.aspx?OrderID=abcdef");.

В качестве альтернативы, вы можете выполнить обработку на странице заказа и отобразить ее как PostbackUrl,поэтому первая страница отправляется обратно прямо на страницу заказа.

0 голосов
/ 06 октября 2010

Несколько способов:

1) Переведите заказ в состояние сеанса и перенесите его вместе с пользователем, автоматически получив его, когда они будут перенаправлены на последнюю страницу.

2) Создайте форму, которая отправляет свои данные с новой страницей в качестве цели (вместо того, чтобы отправлять ее себе как поведение по умолчанию в ASP.Net).

3) Создать форму со скрытыми полями и вывести ее на страницу.

В ситуациях № 2 и № 3 вы можете использовать сценарий на стороне клиента для автоматической отправки формы.

...