2009-11-08 19 views
6

Background: sto implementando il gestore IPN di Paypal.HttpWebRequest invia 200 OK automaticamente?

Questo ottimo article su Paypal indica che mi viene richiesto di inviare un 200 OK a Paypal dopo aver letto la risposta.

Il trattamento dei richiesta IPN è la seguente:

//Send the request to PayPal and get the response 
StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), 
         System.Text.Encoding.ASCII); 
streamOut.Write(strRequest); 
streamOut.Close(); 

StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream()); 
string strResponse = streamIn.ReadToEnd(); //returns VERIFIED 
streamIn.Close(); 

secondo il seguente (da questo articolo), si suppone che il codice (immagino) per inviare un 200 OK torna a Paypal:

PayPal will respond with either VERIFIED or INVALID. After you receive this response, be sure to send 200 OK to prevent additional attempts from PayPal to send an IPN

Non vedo alcuna risposta HTTP esplicita inviata come "200 OK".

L'HttpWebRequest utilizzato invia automaticamente un 200 OK?

Se sì, a che punto si verifica?

In caso negativo, come è possibile inviare 200 risposte OK utilizzando HttpWebRequest? È più facile farlo utilizzando HttpWebRequest o socket?

+1

Non ho familiarità con questa API paypal, tuttavia HttpWebRequest non invia uno stato. Riceve uno stato dal server quando effettua una richiesta. Puoi dare il link all'articolo che hai riferimento? –

+0

Quale "grande articolo su PayPal" sarebbe? – AnthonyWJones

+0

Spiacente, ho dimenticato di incollare il collegamento. Qui: http://www.codeproject.com/KB/aspnet/paypal_c_aspnet.aspx#PostPayment Modificato anche il post. – Marek

risposta

4

La risposta breve alla domanda che si sta ponendo è sì, ASP.NET invierà un 200 se la tua pagina viene eseguita correttamente. Il punto nell'articolo a cui ti riferisci riguarda l'invio di una richiesta a PayPal in risposta alla sua richiesta, quindi l'invio di 200 non ha nulla a che fare con l'oggetto HttpWebRequest come qualcuno ha già indicato.

Quindi, nel caso di questo articolo, se si desidera inviare 200 a Paypal, ASP.NET lo farà automaticamente una volta che la pagina è stata eseguita correttamente.

+0

Grazie mille! Ora ha senso per me. La parte "dopo aver ricevuto VERIFIED, invia 200 OK" mi stava confondendo nel pensare che dovevo rispedire da dove proveniva il VERIFIED. – Marek

0

Il modo più semplice per ottenere la risposta è utilizzare Wireshark e vedere cosa esattamente viene inviato avanti e indietro.

Problemi correlati