zoukankan      html  css  js  c++  java
  • eBay Notification介绍

     

    1.简介

    "通知服务"(约定为Notification的中文名称),是EbayAPI提供的一个便捷的工具,具有实时性的特点。

     

    其设计思想基于发布-订阅模式。一旦客户端订阅了需要通知的事件,服务器发送通知时,客户端就实时接收从eBay发送的通知。

     

    官网API文档:

    http://developer.ebay.com/Devzone/guides/ebayfeatures/Notifications/Notifications.html 此文档应该是最好的第一手资料.

     

    论坛帖子:

    http://community.ebay.cn/thread-1200288175-1-1.html 此帖子比较全面.

     

    .NET WebService接收例子:

    https://ebaydts.com/eBayKBDetails?KBid=2112 直接可以拿过来用,主要是对SOAP消息接收的配置。

    2.Usage

    2.1流程描述

    1)使用SetNotificationPreference接口去设定订阅的event type、通知地址(email或url)

    2)如果选择Email,只需考虑收到邮件之后你将如何处理;

    3)如果选择URL,则需要提供一个地址,如ebayapi.company.com的地址来接收,此处注意,端口号尽量使用80(8080和443没有试过,应该可以过),但是用了94,结果死活都收不到。问了ebay的技术,只能用默认端口。

    4)当有订阅的event发生时,ebay会主动推送消息去你事先设定好的通知地址上。

     

    2.2 设置接收地址

     

    主要分为提醒邮箱设置默认接收URL指定URL(最多25个)三块。

    依次分别是AlertEmail,ApplicationURL,DeliveryURLDetailType

    1. [Test]
    2. public void SetNotification_EnableOrDisable_ApplicaitonDelivery_Test()
    3. {
    4.     var context = ApiContextFactory.GetApiContext(token);
    5.     //var context = SandBoxEnvironment.GetApiContextOfSendBox();
    6.     SetNotificationPreferencesCall call = new SetNotificationPreferencesCall(context);
    7.  
    8.     var enable = EnableCodeType.Enable;
    9.     var type = new ApplicationDeliveryPreferencesType()
    10.     {
    11.         AlertEmail = "mailto://1050244110@qq.com",
    12.         AlertEnable = enable,
    13.         AlertEnableSpecified = true,
    14.  
    15.         ApplicationURL = "mailto://1050244110@qq.com",
    16.         ApplicationEnable = enable,
    17.         ApplicationEnableSpecified = true,
    18.  
    19.         DeliveryURLDetails = new DeliveryURLDetailTypeCollection(
    20.             new DeliveryURLDetailType[] {
    21.             new DeliveryURLDetailType()
    22.             {
    23.                 Status = enable,
    24.                 DeliveryURLName = "seller1_Delivery",
    25.                 DeliveryURL = "http://address1.com",
    26.                 StatusSpecified = true
    27.             },new DeliveryURLDetailType(){
    28.                     Status = enable,
    29.                     DeliveryURLName = "seller2_Delivery",
    30.                     DeliveryURL = "http://address2.com",
    31.                     StatusSpecified = true
    32.             }})
    33.     };
    34.  
    35.     call.SetNotificationPreferences(type);
    36. }

     

    查看指定结果

    1. [Test]
    2. public void GetNotification_RoleCodeType_Application_Test()
    3. {
    4.     var context = ApiContextFactory.GetApiContext(token);
    5.     //var context = SandBoxEnvironment.GetApiContextOfSendBox();
    6.     GetNotificationPreferencesCall call = new GetNotificationPreferencesCall(context);
    7.     call.GetNotificationPreferences(NotificationRoleCodeType.Application);
    8.     Console.WriteLine(call.ApplicationDeliveryPreferences);
    9.     Console.WriteLine(call.ApplicationDeliveryPreferences.AlertEmail);
    10.     Console.WriteLine(call.ApplicationDeliveryPreferences.ApplicationURL);
    11.     Console.WriteLine(call.ApplicationDeliveryPreferences.AlertEnable.ToString());
    12.     Console.WriteLine(call.ApplicationDeliveryPreferences.ApplicationEnable.ToString());
    13.     Console.WriteLine(call.ApplicationDeliveryPreferences.DeviceType.ToString());
    14.     Console.WriteLine(call.ApplicationDeliveryPreferences.NotificationPayloadType.ToString());
    15.     foreach (DeliveryURLDetailType item in call.ApplicationDeliveryPreferences.DeliveryURLDetails)
    16.     {
    17.         Console.WriteLine(item.DeliveryURL);
    18.         Console.WriteLine(item.DeliveryURLName);
    19.         Console.WriteLine(item.Status.ToString());
    20.     }
    21. }

     

     

    2.3订阅EventType

     

    1. [Test]
    2. public void SetNotificationPreferences_EnableOrDisbable_EventTypes()
    3. {
    4.     var context = ApiContextFactory.GetApiContext(token);
    5.     //var context = SandBoxEnvironment.GetApiContextOfSendBox();
    6.     SetNotificationPreferencesCall call = new SetNotificationPreferencesCall(context);
    7.  
    8.     var enable = EnableCodeType.Enable;
    9.     call.DeliveryURLName = "seller1_ Delivery "; //如果指定了,则使用对应名称的URL,反之,则使用 ApplicationURL
    10.     var coll = new NotificationEnableTypeCollection();
    11.  
    12.     coll.Add(new NotificationEnableType()
    13.     {
    14.         EventEnable = enable,
    15.         EventEnableSpecified = true,
    16.         EventType = NotificationEventTypeCodeType.AuctionCheckoutComplete,
    17.         EventTypeSpecified = true
    18.     });
    19.  
    20.     coll.Add(new NotificationEnableType()
    21.     {
    22.         EventEnable = enable,
    23.         EventEnableSpecified = true,
    24.         EventType = NotificationEventTypeCodeType.FixedPriceTransaction,
    25.         EventTypeSpecified = true
    26.     });
    27.  
    28.     coll.Add(new NotificationEnableType()
    29.     {
    30.         EventEnable = enable,
    31.         EventEnableSpecified = true,
    32.         EventType = NotificationEventTypeCodeType.EndOfAuction,
    33.         EventTypeSpecified = true
    34.     });
    35.  
    36.  
    37.     call.SetNotificationPreferences(coll);
    38. }

     

    查看订阅结果

     

    1. [Test]
    2. public void GetNotification_UserLevel_Test()
    3. {
    4.  
    5.     var context = ApiContextFactory.GetApiContext(token);
    6.     //var context = SandBoxEnvironment.GetApiContextOfSendBox();
    7.  
    8.     GetNotificationPreferencesCall call = new GetNotificationPreferencesCall(context);
    9.     call.GetNotificationPreferences(NotificationRoleCodeType.User);
    10.  
    11.     Console.WriteLine(call.DeliveryURLName);
    12.     Console.WriteLine(call.DetailLevelList.Count);
    13.  
    14.     foreach (NotificationEnableType item in call.UserDeliveryPreferenceList)
    15.     {
    16.         Console.WriteLine(item.EventEnable.ToString());
    17.         Console.WriteLine(item.EventType.ToString());
    18.     }
    19. }

     

    2.4 邮件接收结果截图

    内容就是XML文档。

    3.注意事项

    3.1 端口

    如果使用http或https的方式,端口号尽量使用默认端口号(80,443)

    3.2 token

    订阅某个卖家的EventType时,需要指定此卖家的token;

    3.3 ApplicationDeliveryPreferencesType

    当ApplicationDeliveryPreferencesType设置为Disable时,所有启用的订阅事件将不发送,除非将其又设置为Enable。

  • 相关阅读:
    transform:translate -50%解释
    无缝滚动条
    css二维画面练习-扑克牌
    css二维动画
    ORM了解
    socket总结
    2016/9/23总结电脑内容
    winform控件跨线程委托
    HttpRequestMessage
    vue设置每个页面的头部title
  • 原文地址:https://www.cnblogs.com/pengzhen/p/4583248.html
Copyright © 2011-2022 走看看