2009-11-08 15 views
6

Antecedentes: estoy implementando el controlador Paypal IPN.¿HttpWebRequest envía 200 OK automáticamente?

Este gran article en Paypal indica que estoy obligado a enviar un 200 OK de nuevo a Paypal después de leer la respuesta.

El procesamiento de la solicitud IPN es la siguiente:

//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(); 

De acuerdo con lo siguiente (del artículo), el código (supongo) se supone que enviar un 200 OK de nuevo 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

No veo ninguna respuesta HTTP explícita que se envíe como "200 OK".

¿El HttpWebRequest utilizado envía un 200 OK automáticamente?

En caso afirmativo, ¿en qué momento ocurre eso?

En caso negativo, ¿cómo se puede enviar una respuesta 200 OK utilizando HttpWebRequest? ¿Es más fácil hacerlo usando HttpWebRequest o sockets?

+1

No estoy familiarizado con esta API de PayPal, sin embargo, HttpWebRequest no envía un estado. Recibe un estado del servidor cuando realiza una solicitud. ¿Puedes dar el enlace al artículo que haces referencia? –

+0

¿Qué "gran artículo sobre PayPal" sería eso? – AnthonyWJones

+0

Lo siento, olvidé de pegar el enlace. Aquí: http://www.codeproject.com/KB/aspnet/paypal_c_aspnet.aspx#PostPayment También editó la publicación. – Marek

Respuesta

4

La respuesta breve a la pregunta que realmente está preguntando es sí, ASP.NET enviará un 200 si su página se ejecuta correctamente. El punto en el artículo al que se refiere es acerca de que envíe una solicitud a Paypal en respuesta a su solicitud, por lo que enviar 200 no tiene nada que ver con el objeto HttpWebRequest como alguien ya ha señalado.

Por lo tanto, en el caso de este artículo, si desea enviar de vuelta 200 a Paypal, ASP.NET lo hará automáticamente una vez que la página se haya ejecutado con éxito.

+0

¡Muchas gracias! Ahora tiene sentido para mí. La parte "después de recibir VERIFICADO, envía 200 OK" me confundía y me hacía pensar que debería enviarla de vuelta a donde vino el VERIFIED. – Marek

0

La manera más fácil de obtener la respuesta es usar Wireshark y ver exactamente qué se envía y recibe.

Cuestiones relacionadas