2009-11-18 10 views
0

Je me bats avec ce pendant trois jours, je veux faire un poste manuel à un fournisseur tiers, qui sera ensuite prendre les détails de l'internaute (dans ce cas, le fournisseur est PayFast), puis redirigera vers mon site en fonction du succès ou de l'échec.complète POST et rediriger vers un site tiers

J'ai essayé d'utiliser un certain nombre d'exemples sur ce site et d'autres, y compris celui qui reconstitue manuellement la forme comme on peut le voir à (http://www.jigar.net/articles/viewhtmlcontent78.aspx) l'exemple principal que je trouve est similaire à la poste à des questions stackoverflow 1167067

ici est le résultat dans mon code, qui coud pour créer le flux, mais je ne peux pas comprendre comment envoyer le contrôle sur le site des fournisseurs depuis response.redirect tue le flux

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

Que signifie « envoyer la commande sur le site Web des fournisseurs » signifie? La ligne "WebReq.GetResponse()" affiche déjà les données sur l'autre site. – David

+0

le navigateur ne s'envoyé au site, si tel est WebReq.GetResponse() est censé le faire ne fonctionne pas. Donc, c'est ce que je veux dire je veux que le navigateur soit redirigé vers PF_HOST, si je fais Response.Redirect (PF_HOST) puis il redirige mais il n'y a pas de variables – WASSA

+0

pour la référence const chaîne PF_HOST = "https: // sandbox .payfast.co.za/eng/process "; – WASSA

Répondre

0

a résolu le problème grâce à http://www.jigar.net/articles/viewhtmlcontent78.aspx

J'ai créé une nouvelle classe selon doc, et fait quelques réglages, comme initialiser l'URL dans le cadre de la déclaration et cela fonctionne comme un charme, grâce à JigJar

J'avais déjà trouvé cette solution, et donné là-dessus.

Questions connexes