最近公司网站增加了UPS Online Tools的相关功能:UPS Shipping(UPS 运输),UPS Tracking(UPS 包裹追踪),UPS Rates & Service Selection(UPS 价格和服务选择),UPS Time in Transit(UPS 运输时间)。我拿出来和大家分享一下。

今天首先向大家介绍UPS Tracking(UPS 包裹追踪)。在讲解代码之前,我先讲解下我们使用UPS Tracking(UPS 包裹追踪)的背景。我司是做网上购物网站的,主要的客户群体是老外,因此商品一般通过快递运输到客户手上。而我们主要选择的是UPS。我们的客户很多时候会去追踪自己的包裹,按照传统的办法是去UPS网站上查询包裹的追踪信息。但是,UPS提供了一个叫UPS Online Tools的服务,它可以使我们网站集成包裹追踪的功能。

例如,我们的网站是www.taobao.com,我们的客户端Web Users会通过一个叫Tracking.aspx的页面输入包裹的追踪号码:

而当客户端输入完毕,点击Track按钮时,调用javascript,将客户输入的追踪号码发送回我们的服务器,我们的服务器接受到了客户端的追踪号码后,会自动生成一个叫TrackRequest的XML,如下:

1 <?xml version="1.0" ?>
2  <AccessRequest xml:lang='en-US'>
3  <AccessLicenseNumber>YOURACCESSLICENSENUMBER</AccessLicenseNumber>
4  <UserId>YOURUSERID</UserId>
5  <Password>YOURPASSWORD</Password>
6  </AccessRequest>
7  <?xml version="1.0" ?>
8  <TrackRequest>
9  <Request>
10  <TransactionReference>
11  <CustomerContext>Track</CustomerContext>
12  </TransactionReference>
13  <RequestAction>Track</RequestAction>
14  </Request>
15  <TrackingNumber>1Z9999999999999999</TrackingNumber>
16  </TrackRequest>

服务器端会把这个XML的信息提交给UPS的Online Tools服务器,Online Tools服务器会根据XML中的<TrackingNumber>1Z9999999999999999</TrackingNumber>返回该包裹的所有追踪信息。该信息是一个叫TrackResponse的XML

1 <?xml version="1.0" ?>
2  <TrackResponse>
3  <Response>
4  <TransactionReference>
5  <CustomerContext>Track</CustomerContext>
6  <XpciVersion>1.0</XpciVersion>
7  </TransactionReference>
8 <ResponseStatusCode>1</ResponseStatusCode>
9 <ResponseStatusDescription>Success</ResponseStatusDescription>
10 </Response>
11 <Shipment>
12 <Shipper>
13 <ShipperNumber>123X67</ShipperNumber>
14 </Shipper>
15 <ShipTo>
16 <Address>
17 <City>Timonium</City>
18 <StateProvinceCode>MD</StateProvinceCode>
19 <CountryCode>US</CountryCode>
20 </Address>
21 </ShipTo>
22 <Service>
23 <Code>03</Code>
24 <Description>Ground</Description>
25 </Service>
26 <Package>
27 <TrackingNumber>1Z9999999999999999</TrackingNumber>
28 <Activity>
29 <ActivityLocation>
30 <Address>
31 <City>Timonium</City>
32 <StateProvinceCode>MD</StateProvinceCode>
33 <CountryCode>US</CountryCode>
34 </Address>
35 <Code>DL</Code>
36 <Description>Delivered</Description>
37 </ActivityLocation>
38 <Status>
39 <StatusType>
40 <Code>XX</Code>
41 <Description>Status XX</Description>
42 </StatusType>
43 <StatusCode>
44 <Code>YY</Code>
45 <Description>Code YY</Description>
46 </StatusCode>
47 </Status>
48 </Activity>
49 </Package>
50 </Shipment>
51 </TrackResponse>

然后我们的服务收到Online Tools服务器的XML后,把这个XML返回给客户端Web Users。客户端通过javascript解析这个XML,把相关信息展现给客户。

其原理如图:

下面,我就来讲解代码吧,新建一个空白解决方案UpsOnlineTool,在添加Web项目GB.Web

再创建两个类库GB.Plugin.UpsComponent和GB.Plugin.UpsComponent.Tracking,如图

接着在GB.Web项目中创建一个Tracking.aspx页面,代码如下

1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Tracking.aspx.cs" Inherits="GB.Web.Tracking" %>
2
3  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5  <html xmlns="http://www.w3.org/1999/xhtml" >
6  <head runat="server">
7  <title>UPS Online Tool --- Tracking</title>
8  <link type="text/css" rel="stylesheet" href="/Css/jquery.alerts.css" />
9  <link type="text/css" rel="stylesheet" href="/Css/Tracking.css" />
10  <script language="javascript" type="text/javascript" src="/Js/jquery-latest.js"></script>
11  <script language="javascript" type="text/javascript" src="/Js/jquery.ui.draggable.js"></script>
12  <script language="javascript" type="text/javascript" src="/Js/jquery.alerts.js"></script>
13  <script language="javascript" type="text/javascript" src="/Js/Track.js"></script>
14  </head>
15  <body>
16     <form id="form1" runat="server">
17     <div>
18         <asp:TextBox ID="txtTrackingNumber" runat="server"></asp:TextBox>
19         <asp:Button ID="btnTracking" runat="server" Text="Track" />
20     </div>
21     <div id="Result">
22    
23     </div>
24     </form>
25  </body>
26  </html>
27

(注:这个项目中,我添加了Jquery框架)

Track.js代码如下:

待续...............

转载于:https://www.cnblogs.com/harveyqiu/archive/2009/11/27/1612232.html

UPS Online Tools(一) --- Tracking相关推荐

  1. Linux(CentOS)下,各种协议,端口号

    Linux(CentOS)下,各种配置文件如下: DNS:cat /etc/resolv.conf 主机名:cat etc/sysconfig/network 私有主机名:cat /etc/hosts ...

  2. 荧光透视的计算机辅助外科手术,「电信学」「2008.11」基于荧光透视的电磁跟踪骨科X射线导航实践研究...

    「来源: |MATLAB的科学与工程应用 ID:gh_60b944f6c215」 本文为以色列耶路撒冷希伯来大学(作者:Yair Yarom)的硕士论文,共82页. 在计算机辅助技术中,导航系统旨在提 ...

  3. 亚马逊kindle设置_在亚马逊Kindle上追逐活跃的社会工程欺诈

    亚马逊kindle设置 TL;DR: I've just spent several hours chasing a socially engineered (not password comprom ...

  4. 《Team Geek: A Software Developer's Guide to Working Well with Others》读书笔记(三)

    Chapter 3 Every Boat Needs a Captain 每艘船都需要一个船长 没有船长的船只是一个漂浮的房子,随着海浪无目的地到处漂浮. A boat without a capta ...

  5. My Python Summary

    Python的反射机制 简单的说通过dir(classname)可以获取类的方法及属性等,而通过globals()可以得到py文件中类Map,可以通过globals()[key]的方式创建对象,下所示 ...

  6. Apache Kafka for Item Setup

    At Walmart.com in the U.S. and at Walmart's 11 other websites around the world, we provide seamless ...

  7. HXSN邮件服务器升级技术方案书

    第1章 邮件升级策略 本章覆盖了升级计划的制定及升级到Domino 8需要考虑的问题.Domino体系结构有很多种可能的变化,每一种变化需要考虑的因素可能都不一样.本章不涉及与某个具体设计相关的可能的 ...

  8. 使用谷歌搜索的20条高效技巧 20 Google Search Tips to Use Google More Efficiently

    谷歌浏览器使用技巧速览 1. Use the tabs 使用好分类标签 2. Use quotes 用好引号 3. Use a hyphen to exclude words 使用减号(-)去除不想搜 ...

  9. JVM中的本地内存追踪NMT(Native Memory Tracking)

    JVM中的本地内存追踪NMT(Native Memory Tracking) 1 概述 每当想起为什么Java应用程序会消耗比设置-Xms和-Xmx多的内存的时候,心中总是会有个问号.因为一些理由和优 ...

最新文章

  1. ThinkPHP 数据库操作之数据表模型和基础模型 ( Model )
  2. python meataclass详解
  3. c++ 返回 char*
  4. MyBatis 解决模糊查询包含特殊字符
  5. laravel api_如何在现有的Laravel应用中获取即时GraphQL API
  6. vb红绿灯自动切换_VB红绿灯程序.doc
  7. csuoj 1351: Tree Counting
  8. Oracle的FIXED
  9. oracle10g 安装手册 linux,oracle10g在x86linux上的安装步骤
  10. feedback vertex set problem (FVS) 反馈顶点集问题 是什么
  11. 十年中国WLAN市场霸主,是谁?
  12. 原相机怎么设置水印_原相机里面的字体颜色 相机水印字体大小怎么设置
  13. 《魔法黎明(Dawn of Magic)》反复刷BOSS(三)
  14. 实践数据湖iceberg 第三十四课 基于数据湖icerberg的流批一体架构-流架构测试
  15. iOS上应用如何兼容32位系统和64位系统
  16. 路由器与交换机配置测试题及答案
  17. 压缩文件报错 tar: Exiting with failure status due to previous errors
  18. ICPC-TOOLs resolver滚榜单工具使用指南
  19. 关于360浏览器兼容模式下文档模式默认以ie7标准渲染
  20. DP线和HDMI线区别,优缺点,传输显示器图像速率

热门文章

  1. 我的Python成长之路---第三天---Python基础(9)---2016年1月16日(雾霾)
  2. Linux下C编程-----IO/文件操作 模拟linux ls程序显示文件系统树形结构(2)
  3. Centos6.3安装KVM
  4. C#中StreamWriter与BinaryWriter的区别兼谈编码。
  5. 架构分享--微博架构的回顾
  6. Windows2003开机后进不了系统
  7. java引用微信支付的p12证书文件
  8. 移动设备尚未形成DDoS的3个原因
  9. JVM快速调优手册v1.0
  10. SharePoint2010升级到SharePoint2013操作手册