2011-01-20 3 views
0

Можно ли отправить обратно на сервер, выполнить функцию, а затем продолжить эту обратную передачу на внешнее место? (т. е. к платежной системе)Передать переменные формы на второй постбэк ... asp.net

(сценарий нажимает кнопку, чтобы разместить заказ, пометить его как отправленное, затем отправить на страницу платежа (есть переменные формы, которые необходимо отправить на платеж экран))

+1

Я бы дважды проверил страницу оплаты, чтобы узнать, можете ли вы передать эти переменные по URL-адресу, что, вероятно, сделает вашу жизнь намного приятнее. – Greg

ответ

1

Вы можете (вероятно) использовать Response.Redirect и отправить размещенные переменные на внешнюю страницу как часть строки запроса.

Затем переменные будут видны в адресной строке браузера, но это не менее безопасно, чем опубликованные переменные формы, немного уродливые.

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

+0

Вот как я это сделал, с хешем md5, чтобы обеспечить он не был подделан – Paul

1

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

UPDATE

Поскольку это оплата услуг Worldpay, необходимо проверить их API и, возможно, связаться с ними.

Securely submitting form data to Worldpay using ASP.NET

Google Search on ASP.NET and Worldpay

Similar question on SO

+2

Я, вероятно, ошибаюсь, но я думаю, что страница оплаты может быть совершенно другим веб-сервером под контролем третьей стороны, так что это не сработает. – Greg

+0

@Greg, хорошая точка +1 ... @Paul, можете ли вы быть более конкретным внешним платежной системой? Это PayPal? – IrishChieftain

+0

Это WorldPay, да извините – Paul

1

Да, вы могли бы это сделать. После того, как обратная загрузка загрузится, выведите HTML-форму, которая встречается вне формы ASP.net по умолчанию, и используйте javascript для автоматической отправки этой формы после загрузки страницы.

Вы можете сделать это полностью как решение javascript (и обновить div вне формы asp.net), или вы можете перезаписать метод рендеринга самой страницы.

0

Работайте, если они находятся на другой странице. Это всего лишь скелет

try 
{ 
    Response.Redirect(To your order page); 
    Process your data 
    try 
    { 
     Response.redirect to WorldPay 
     Do Payment 

    } 
    catch 
    { 
     to original page 
    } 

} 
Catch 
{ 
    Reposne.Redirect to origin page 
} 
Смежные вопросы