Google结帐通知确认失败

时间:2012-06-24 12:19:53

标签: c# asp.net google-checkout

我有一个被调用的回调网址,我可以处理它。但是 - Google不会处理我的确认。这一切都在EnvironmentType.Sandbox

在Google结帐“Integration Console”中,我收到以下消息:

  

我们在处理您的通知确认时遇到错误。   我们得到的错误是:解析通知确认时出错。

详情如下: 他们发给我的是:serial-number=...

他们收到了什么:

<?xml version="1.0" encoding="utf-8"?>
<notification-acknowledgment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" serial-number="here is the same serial number they sent me" xmlns="http://checkout.google.com/schema/2" />

<!DOCTYPE html...

我正在使用的代码:

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;

这里的错误是什么?

2 个答案:

答案 0 :(得分:1)

请参阅.Net Library examples

中的“代码隐藏”代码

如果您使用的是aspx文件,请移除其中的所有HTML内容,如aspx source of the same example

所示

Response.End()也可以工作,因为它会阻止任何进一步的Reponse内容被返回(实际上做同样的事情 - 阻止发送Web表单(aspx文件)中的HTML内容)。< / p>

您还可以考虑使用通用处理程序(ashx)代替回调网址的aspx页面。

答案 1 :(得分:0)

似乎这个问题是通过回答我的另一个问题来解决的:How can I create an http response from scratch?

解决方案是添加:

HttpContext.Current.Response.End();