Bevestiging van Google Checkout-melding mislukt

Ik heb een callback-URL die wordt gebeld en ik kan deze verwerken. Echter - Google verwerkt mijn bevestiging niet. Dit staat allemaal in EnvironmentType.Sandbox .

In de Google Checkout "Integration Console" krijg ik het volgende bericht:

Er is een fout opgetreden bij het verwerken van uw bevestigingsmelding.   De fout die we hebben is: Fout bij het parseren van notificatiebevestiging.

En de details zijn: Wat ze me hebben gestuurd: serienummer = ... .

Wat ze hebben ontvangen:

<?xml version="1.0" encoding="utf-8"?>


De code die ik gebruik:

GCheckout.AutoGen.NotificationAcknowledgment response = new GCheckout.AutoGen.NotificationAcknowledgment();
response.serialnumber = serialNumber;
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.BinaryWrite(GCheckout.Util.EncodeHelper.Serialize(response));
HttpContext.Current.Response.StatusCode = 200;

Wat is de fout hier?

0

2 antwoord

See this "code behind" code from the .Net Library examples

If you are using an aspx file, remove all the HTML content in it as shown in aspx source of the same example

Response.End() will also work because it stops any further Reponse content from being returned (effectively does the same thing - prevents the HTML content in the Web Forms (aspx file) from being sent).

U kunt ook overwegen om een ​​generieke afhandelingsroutine te gebruiken ( ashx ) in plaats van een aspx-pagina voor uw callback-URL.

1
toegevoegd

Het lijkt erop dat deze vraag is opgelost door een antwoord op een andere vraag van mij: Hoe kan ik een http-antwoord vanuit het niets maken? .

De oplossing is om toe te voegen:

HttpContext.Current.Response.End();
0
toegevoegd