我有一个被调用的回调网址,我可以处理它。但是 - 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;
这里的错误是什么?
答案 0 :(得分:1)
如果您使用的是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();