码迷,mamicode.com
首页 > 其他好文 > 详细

eBay Notification介绍

时间:2015-06-17 15:00:04      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:

?

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。

eBay Notification介绍

标签:

原文地址:http://www.cnblogs.com/pengzhen/p/4583248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!