C#和Google Checkout – 从服务器获取回复?

在使用C#和GCheckout API时,是否有关于如何从Google Checkout事务中获取响应的教程。 我能找到的所有示例都是针对API的先前版本而不是当前版本(2.5)。 更具体地说,我想看一个谷歌将在没有和HTTPS连接的情况下发回给我的回复示例。 我知道这是最小的数据,但我仍然希望看到它的一个例子,看看其他人如何解析它。

Google会在内部发送通知
像这样创建一个通知页面:

<%@ Import Namespace="System.IO" %> <%@ Import Namespace="GCheckout" %> <%@ Import Namespace="GCheckout.AutoGen" %> <%@ Import Namespace="GCheckout.Util" %> <%@ Import Namespace="System.Data.SqlClient" %> <%@ Import Namespace="System.Text" %>  

`

在Google Checkout设置页面上设置通知页面名称和路径,您将在该页面上获得响应。 要测试通知页面是否正常工作,请尝试将事务记录到txt文件中,一旦每个事情都顺利进行,您就可以删除该代码。

在此示例中,PData是我发送到Google Checkout的号码,并在通知中返回相同的号码,我使用此号码将交易与特定订单进行匹配。

希望这段代码能帮到你;

注意:我刚刚复制了我的答案:

Google Checkout回复的C#示例?

由于某种原因,主持人将其作为副本关闭(我认为合并会更好,因为这个问题没有答案而另一个问题没有答案)。

我想要这个Google API版本2.5 .NET示例代码很长一段时间,最后自己构建它:

http://www.capprime.com/software_development_weblog/2010/11/29/UsingTheGoogleCheckout25APIWithASPNETMVCTheMissingSample.aspx

如果你需要经典的WebForms而不是MVC,请告诉我。

我没有包含数据包的样本,因为老实说,它没关系(API应该包裹数据包)。 在几个地方修改样本并让它向您发送包含该数据的电子邮件并不是很多工作。

如果没有HTTPS连接,您只能获得一个发布给您的序列号。 为安全起见,您应确保授权正确(应该有一个Authorization标题包含:使用base64编码编码)

然后,您需要通过Notification-History-API进行调用,以便松散地请求更新的详细信息:

 IList ordersToGetUpdate = new List { serialNumber }; NotificationHistoryRequest request = new NotificationHistoryRequest(ordersToGetUpdate); NotificationHistoryResponse resp = (NotificationHistoryResponse)request.Send(); foreach (object notification in resp.NotificationResponses) { // You'd now need to handle the response, which could be one of NewOrderNotification, OrderStateChangeNotification, RiskInformationNotification, AuthorizationAmountNotification or a ChargeAmountNotification NewOrderNotification newOrder = notification as NewOrderNotification; if( newOrder != null ) { // Yay! New order, so do "something" with it } OrderStateChangeNotification orderUpdate = notification as OrderStateChangeNotification; if (orderUpdate != null) { // Order updated (paid, shipped, etc), so do "something" with it } // you probably get the idea as to how to handle the other response types }