Intentaré ir directo al grano. Actualmente estoy trabajando con PayPal IPN y nunca antes había visto este problema. He usado PayPal IPN y mis implementaciones siempre han sido las mismas. Esta vez, sin embargo, está produciendo resultados muy extraños.ASP.NET Paypal IPN vuelve VERIFICADO pero IPN no puede enviar
estoy actualmente alojado con WinHost.com
código utilizado:
public void MakeHttpPost()
{
ErrorLog log = new ErrorLog();
//Post back to either sandbox or live
string strSandbox = "https://www.sandbox.paypal.com/cgi-bin/webscr";
string strLive = "https://www.paypal.com/cgi-bin/webscr";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strSandbox);
//Set values for the request back
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] param = HttpContext.Current.Request.BinaryRead(HttpContext.Current.Request.ContentLength);
string strRequest = Encoding.ASCII.GetString(param);
strRequest += "&cmd=_notify-validate";
req.ContentLength = strRequest.Length;
//for proxy
//WebProxy proxy = new WebProxy(new Uri("http://url:port#"));
//req.Proxy = proxy;
//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();
streamIn.Close();
log.error = strResponse;
log.Insert();
if (strResponse == "VERIFIED")
{
PaypalPaymentHistory PPH = new PaypalPaymentHistory();
PPH.LastName = HttpContext.Current.Request["last_name"];
PPH.FirstName = HttpContext.Current.Request["first_name"];
PPH.State = HttpContext.Current.Request["address_state"];
PPH.Zipcode = HttpContext.Current.Request["address_zip"];
PPH.Address = HttpContext.Current.Request["address_street"];
PPH.UserName = HttpContext.Current.Request["option_name2"];
PPH.PaymentStatus = HttpContext.Current.Request["payment_status"];
PPH.SelectedPackage = HttpContext.Current.Request["option_selection1"];
PPH.PayerStatus = HttpContext.Current.Request["payer_status"];
PPH.PaymentType = HttpContext.Current.Request["payment_type"];
PPH.PayerEmail = HttpContext.Current.Request["payer_email"];
PPH.ReceiverId = HttpContext.Current.Request["receiver_id"];
PPH.TxnType = HttpContext.Current.Request["txn_type"];
PPH.PaymentGross = HttpContext.Current.Request["payment_gross"];
PPH.Insert();
}
else if (strResponse == "INVALID")
{
//log for manual investigation
}
else
{
//log response/ipn data for manual investigation
}
}
La idea aquí es que voy a comprobar el estado del pedido y luego insertar o no insertar el registro de la base de datos pero este código todavía está en pruebas, por lo que nada es oficial.
El problema que tengo es que cuando corro a través de sandbox y realizo un pago a través de mi sitio, PayPal envía la solicitud de IPN. La entrada se arroja a la base de datos y todos los datos se devuelven correctamente, sin embargo, PayPal muestra que la publicación IPN "Falló" y siempre está bloqueada en "Reintentar". Sin embargo, estoy recibiendo "VERIFICADO" en strResponse. Esto a su vez está causando hasta 8 registros por transacción. El error que está reportando PayPal es 500 - Error interno del servidor. ¡Cualquier ayuda sería increíblemente apreciada ya que ha sido un maratón de ataques de cabeza de 2 días hasta este momento!
¡Gracias por cualquier ayuda o resolución!
P.S He leído casi todas las preguntas de IPN en stackoverflow y no he visto nada como esto.
tengo el controlador que llama que WWW.site.com/payment/processpayment función que es el enlace en la caja PayPal IPN – jhartzell
estoy recibiendo el interior de paypal verificado que muestra sin embargo paypal es mostrar falló y se retira constantemente la publicación en mi acción de controladores ProcessPayment que llama a MakeHttpPost – jhartzell
El controlador es muy básico, lo único que hay en él es mi objeto PPIPN PP = nuevo PPIPN ("TEST") y luego PP.MakeHttpPost(). No veo cómo podría estar fallando. http://www.mysite.com/payment/processpayment ¿No es esta una dirección IPN correcta para ingresar en paypal? Realmente aprecio su ayuda Rick. – jhartzell