2011-05-17 8 views
5

He estado trabajando en esto por un tiempo y simplemente no puedo conseguir que google acepte que hice lo que quería, así que siguen enviándome notificaciones para el mismo pedido. La documentación sobre este está disponible aquí:C# ASP.NET Reconocimiento de notificación de Google Checkout

Google Notification Acknowledgement Documentation

Aquí está mi código en la página de la que recieves Google notifcations:

string serial = Request["serial-number"]; 

// do my stuff 

StringBuilder responseXml = new StringBuilder(); 
responseXml.Append("<?xml version='1.0' encoding='UTF-8'?>"); 
responseXml.Append("<notifiation-acknowledgment xmlns=\"http://checkout.google.com/schema/2/\" serial-number=\""); 
responseXml.Append(Request["serial-number"]); 
responseXml.Append("\" />"); 

HttpResponse response = HttpContext.Current.Response; 
response.StatusCode = 200; 
response.ContentType = "text/xml"; 
response.Write(responseXml.ToString()); 
+0

Realmente debería escaparse de XML el número de serie como lo anexa. Pero no veo nada malo, ¿quizás intente terminar con una AppendLine para un salto de línea? ¿O omitiendo el ' Rup

+0

¿Has probado solo usar la API apk GCheckout para esto? Encapsula las llamadas a Google Checkout en una biblioteca. http://code.google.com/apis/checkout/samples/Google_Checkout_Sample_Code_NET.html#googleCheckoutSampleCodeNETInstallCheckoutModule – briercan

+0

'Nota: La distribución del código de ejemplo de .NET no incluye clases o métodos para procesar notificaciones ni enviar confirmaciones de notificaciones.' –

Respuesta

4

Has mal escrito "notificación-reconocimiento" como "notifiation-reconocimiento" .

También sugeriría usar GCheckout como dijo briercan en los comentarios. Si usa eso, entonces todo lo que tendría que hacer es:

var ack = new GCheckout.AutoGen.NotificationAcknowledgment(); 
ack.serialnumber = serial; 
Response.BinaryWrite(GCheckout.Util.EncodeHelper.Serialize(ack)); 
Response.StatusCode = 200; 
Cuestiones relacionadas