2011-05-17 79 views
5

一直在這工作了一段時間,只是不能讓谷歌接受,我已經做了他們想要的東西,所以他們不斷髮送我的通知相同的順序。關於這個文件可以在這裏找到:C#ASP.NET谷歌結帳通知確認

Google Notification Acknowledgement Documentation

這是我這臨危谷歌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

你應該真正的XML轉義序列號,因爲你追加它。但是我看不出什麼錯誤 - 也許嘗試以換行符的AppendLine結束?或者省略'<?xml',或者確保它和通知之間有換行符? – Rup 2011-05-17 22:33:31

+0

您是否嘗試過使用GCheckout API?它將谷歌結帳調用封裝到一個庫中。 http://code.google.com/apis/checkout/samples/Google_Checkout_Sample_Code_NET.html#googleCheckoutSampleCodeNETInstallCheckoutModule – briercan 2011-05-17 23:12:17

+0

'注意:.NET示例代碼分發不包括處理通知或發送通知確認的類或方法。' – 2011-05-18 01:09:08

回答

4

你拼錯「通知 - 確認」的「信息通報,確認」 。

我也建議使用GCheckout作爲briercan在評論中說。如果你使用它,那麼你所要做的就是:

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