2009-11-18 4 views
0

Я пробовал это в течение трех дней, я хочу сделать проводку вручную стороннему провайдеру, который затем получит информацию от пользователя сети (в этом случае поставщик PayFast), а затем перенаправляет обратно на мой сайт в зависимости от успеха или неудачи.Заполните POST и переадресуйте на сайт третьей стороны

Я попытался с помощью ряда примеров на этом сайте и других, включая тот, который вручную воссоздает форму, как можно увидеть на (http://www.jigar.net/articles/viewhtmlcontent78.aspx) основной пример, который я считаю похож на этот пост на StackOverflow вопросы 1167067

вот результат в моем коде, который швы, чтобы создать поток, но я не могу понять, как отправить контроль на веб-сайт провайдеров, так как Response.Redirect убивает поток

string vystup = null; 
//Our postvars 
byte[] buffer = Encoding.ASCII.GetBytes(pPostData); 
//Initialisation, we use localhost, change if appliable 
HttpWebRequest WebReq = (HttpWebRequest)WebRequest.Create(PF_HOST); 
//Our method is post, otherwise the buffer (postvars) would be useless 
WebReq.Method = "POST"; 
//We use form contentType, for the postvars. 
WebReq.ContentType = "application/x-www-form-urlencoded"; 
//The length of the buffer (postvars) is used as contentlength. 
WebReq.ContentLength = buffer.Length; 
//We open a stream for writing the postvars 
Stream PostData = WebReq.GetRequestStream(); 
//Now we write, and afterwards, we close. Closing is always important! 
PostData.Write(buffer, 0, buffer.Length); 
PostData.Close(); 
//Get the response handle, we have no true response yet! 
HttpWebResponse WebResp = (HttpWebResponse)WebReq.GetResponse(); 
//Let's show some information about the response 
PostResult = "=Status Code: " + WebResp.StatusCode ; 
Console.WriteLine(WebResp.Server); 

//Now, we read the response (the string), and output it. 
Stream Answer = WebResp.GetResponseStream(); 
StreamReader _Answer = new StreamReader(Answer); 
vystup = _Answer.ReadToEnd(); 

PostResult = "redirect called..."; 

// Need to now send the post form to PayFast 
+1

Что означает «отправить контроль на сайт провайдеров»? Строка «WebReq.GetResponse()» уже отправляет данные на другой сайт. – David

+0

браузер не отправляется на сайт, если это то, что должен делать WebReq.GetResponse(), он не работает. Так вот, я имею в виду, что браузер будет перенаправлен на PF_HOST, если я выполняю Response.Redirect (PF_HOST), тогда он перенаправляет, но нет форм vars – WASSA

+0

Для справки const string PF_HOST = "https: // sandbox .payfast.co.za/рус/процесс "; – WASSA

ответ

0

решить ее, благодаря http://www.jigar.net/articles/viewhtmlcontent78.aspx

Я создал новый класс в соответствии с документом и сделал несколько настроек, таких как инициализация URL-адреса как часть декларации, и он работает как шарм, благодаря JigJar

Я нашел это решение раньше и дал на него.

Смежные вопросы