谷歌结帐通知确认失败(Google checkout notification acknowledg

2019-07-30 03:02发布

我有一个回调URL被调用,我可以处理它。 然而 - 谷歌不处理我的确认。 这是所有在EnvironmentType.Sandbox

在谷歌结账“集成控制台”我得到以下信息:

我们遇到了一个错误处理您的通知确认。 我们得到的错误是:错误解析通知确认。

而细节是:他们给我发了什么: 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;

这里有什么错误?

Answer 1:

请参阅从这个“代码背后”代码NET库实例

如果您正在使用一个aspx文件,删除其中的所有HTML内容,如图aspx 相同的例子来源

Response.End()也将工作,因为它会阻止返回任何进一步的内容效应初探(有效地做同样的事情-防止Web窗体中的HTML内容( aspx文件)被发送)。

你也可以考虑使用通用处理器( ashx ),而不是一个aspx页面回调URL。



Answer 2:

看来这个问题被回答我的另一个问题解决: 我如何可以从头开始创建一个HTTP响应? 。

解决的办法是补充:

HttpContext.Current.Response.End();


文章来源: Google checkout notification acknowledgment failing