`
蛋呢823
  • 浏览: 73164 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

淘宝开放平台 API 小试牛刀

阅读更多

 

本应用是基于淘宝开放平台(TOPAPI以及Google Map JavaScript  API开发的一个自用型淘宝买家应用。

实现的功能:

Web构架,展示淘宝用户作为买家,所买到的商品(在地图上展示:商品的收获地址以及商品图片)。

如图:


 

实现过程:

在浏览器上显示地图 --> 

调用TOP API,查询用户的交易记录 --> 

返回XML数据 --> 

解析XML,得到收货地址、商品图片地址 -->

根据地址获得对应的经纬度-->

调用Google Map API 在地图上弹出消息窗口和图片 --> 完毕。

主要技术:

Java , TOP API,Google Map API, DWR

源码分析:

APITest.java

 

public class APITest {
	protected static String testUrl = "http://gw.api.tbsandbox.com/router/rest";// 沙箱环境调用地址
	protected static String Url = "http://gw.api.taobao.com/router/rest";//正式环境调用地址
	/**
	 * 说明:沙箱环境是模拟淘宝网上交易的,开发人员可以在此先测试自己的应用,然后才能申请到正式环境测试
	 */
	
	// 申请的测试账号 appkey 及 secret
	protected static String myappkey = " ";
	protected static String mysecret = " ";
	protected static String sandboxSecret = " "; // 沙箱环境测试下的 AppSecret
	/**
	 * 说明:开发者申请开发应用的时候,系统给你的appkey与secret是和你的应用唯一对应的,同时,
	 * 它会绑定你的淘宝账户(现实环境的账户以及申请的沙箱账户),当需要调用到用户隐私数据的时候,
	 * 调用的即是所关联的账户的数据。
	 * 例如本例调用到的monkey823用户即是我在沙箱申请的账户,里面的交易数据是在mini淘宝模拟的。
	 */
	
	/**
	 * 测试 TradesBoughtGet
	 * 
	 * 调用了top SDK
	 * 
	 */
	public static String testTradeGet() throws ApiException, ParseException {

		// 可以在client 构造函数里 设置返回的数据格式 xml or json
		TaobaoClient client = new DefaultTaobaoClient(testUrl, myappkey,
				sandboxSecret, Constants.FORMAT_XML);
		TradesBoughtGetRequest req = new TradesBoughtGetRequest();
		req.setFields("seller_nick,buyer_nick,title,type,create,orders.pic_path,orders.price,orders.num,receiver_city");
		Date dateTime = SimpleDateFormat.getDateTimeInstance().parse(
				"2011-03-09 05:15:27");
		Date dateTime2 = SimpleDateFormat.getDateTimeInstance().parse(
				"2011-04-09 23:15:27");

		req.setStartCreated(dateTime);
		req.setEndCreated(dateTime2);

		TradesBoughtGetResponse response = client.execute(req);

		System.out.println("------>>  " + response.getBody());

		return response.getBody();
	}

 

 

执行这个测试时,返回的XML数据(为方便查看,以树结构形式展示):


test.jsp

<!--引入dwr的js脚本-->
  <script   src="dwr/interface/APITest.js"></script>    
  <script   src="dwr/engine.js" /></script>

<!--  下面是谷歌地图API的调用 -->
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=cn"></script> 
<script type="text/javascript"> 
function initialize() {
	
	//初始化地图界面
    var myLatlng = new google.maps.LatLng(37.230,106.083);   //中国地图的坐标中心
    var myOptions = {
      zoom: 4, 												//缩放级别
      center: myLatlng,										//设定中心坐标
      mapTypeId: google.maps.MapTypeId.ROADMAP				//地图样式:卫星,地图
    };

    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    //获取后台数据, 并实时显示在地图上。
  	APITest.testTradeGet(callback);   //执行top API 生成xml数据, 并绑定 回调方法处理

  	//回调函数 
  	function callback(response){  //response为执行 APITest.testTradeGet方法返回的值(xml格式的String)
  		var xmlDoc = loadXMLStr(response);

  		
   	//获得图片路径  数组
       	var picturePaths = xmlDoc.getElementsByTagName("pic_path");
       	//获得所在城市  数组
       	var citys = xmlDoc.getElementsByTagName("receiver_city");
      
   	if(picturePaths[0]!=null){ //如果返回的数据不为空
       	    //根据图片地址   生成自定义图片文件
   	    	var image = new google.maps.MarkerImage(
   	    	    picturePaths[0].text, 
   	    	    new google.maps.Size(80, 60),		//缩放后的大小
   	    	    new google.maps.Point(0, 0),		//原始点
   	    		new google.maps.Point(40, 0),		//锚点
   	    		new google.maps.Size(800, 600)      //图片原始大小(缩放图片时必须要填写)
   	    	);   //缩放了大小的图片
   	   	
   	    	var address = citys[0].text;
   	    	//var address = "长沙";
   	    	codeAddress(address);		 //解析地址, 并往地图上添加图片
       }

   	//解析地址的函数
   		function codeAddress(address) {
   			var ll;
   			var geocoder = new google.maps.Geocoder();
   			
   		    if (geocoder) {
   		      geocoder.geocode( { 'address': address},getLL);
   		    }
   		    var re = function getLL(results, status) {
   		        if (status == google.maps.GeocoderStatus.OK) {

   		        	ll = results[0].geometry.location;

   	  		    	//在所解析的地址处, 添加一个标记(用自定义图片)
   	  		        var marker = new google.maps.Marker({
   	  		              map: map, 
   	  		              position: ll,//results[0].geometry.location,
   	  		              icon: image       //自定义的icon
   	  		        });

   	  		        //信息窗口选项  
   	  		        var infoOption = {
   	  		        	content: address,
   	  		        	position: ll//results[0].geometry.location
   	  	        	};
   	  		      	//添加 信息窗口
   	  	        	var info =  new google.maps.InfoWindow(infoOption);
   	  		        info.open(map);    //显示标注信息窗口
   	  		        
   		        } else {
   		          alert("Geocode was not successful for the following reason: " + status);
   		        }
   		      };
   	  	}

  	}

  	//加载 xml 格式的字符串
    function loadXMLStr(text){   //text为xml格式的String
        var xmlDoc;
    	try //Internet Explorer
    	  {
    	  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
    	  xmlDoc.async="false";
    	  xmlDoc.loadXML(text);
    	  }
    	catch(e)
    	  {
    	  try //Firefox, Mozilla, Opera, etc.
    	    {
    	    parser=new DOMParser();
    	    xmlDoc=parser.parseFromString(text,"text/xml");
    	    }
    	  catch(e) {alert(e.message);}
    	  }
  	  return xmlDoc;
  	}
}    
</script> 
</head> 
<body onload="initialize()"> 

<!-- 显示地图的div -->
  <div id="map_canvas" style="width: 1000px; height: 800px; align:center;"></div>   
</body>
</html>

 

这里省略了web.xml以及dwr.xml两个文件。

当然,dwr的包、 TOP的SDK是不能忘记的。O(∩_∩)O~

 

好了,希望本文能引起你对于TOP的兴趣,更希望对于刚要着手开发淘宝应用的同志 能够有点帮助。

错误之处,还望不吝赐教。

 

示例参考:

 

 

 

 

  • 大小: 14 KB
  • 大小: 227.1 KB
1
2
分享到:
评论

相关推荐

    淘宝开放平台api

    此文档费了很多心血,为开发淘宝ERP精心制作而成,因为淘宝六月份政策变了,开发此类的应用门坎...所以目前没有继续开发了,这份文档适合做淘宝开放平台的朋友使用,如果需要更新的开发文档,可以联系我,可有偿制作。

    京东 开放平台 api

    京东开放平台API 京东开放平台API是京东商城提供的一组Application Programming Interface(API),旨在提供在线文档、接口说明和调用方式,帮助开发者更好地集成京东商城的功能,提高电子商务平台的开发效率和用户...

    C# 调用淘宝开放平台API的例子

    开发语言C#,工具是VS2010,本例子是原创调用淘宝开放平台API的例子。其中包括项目形式的淘宝JDK(2012.6.28),功能有:取得用户的API(TOP_test),店铺API(Shop_API),类目API(Item_API),交易API(Trade_API)。

    淘宝开放平台示例

    淘宝开放平台(Taobao Open Platform,简称TOP)是淘宝提供的一种接口服务,允许开发者通过调用API来访问淘宝的数据和功能,从而构建与淘宝相关的应用。在这个示例中,我们看到的是一个基于C#语言编写的客户端程序,...

    淘宝开放平台Api请求基础SDK(自动同步).rar

    淘宝开放平台SDK提供了API的请求封装、摘要签名、响应解释、消息监听等功能,使用SDK可以轻松完成API的调用、API结果的获取、消息的实时监听。 二、环境依赖 1)JAVA SDK 需要依赖 Java SE/EE 1.5及以上; 2)...

    淘宝开放平台(TOP)的API测试工具客户端

    淘宝开放平台(Taobao Open Platform,简称TOP)是淘宝提供给开发者进行应用开发的平台,它允许第三方开发者通过API接口访问淘宝的各种数据和服务,从而创建各种创新应用。在这个平台上,开发者可以利用淘宝的商品...

    校内网开放平台API (.net)

    【标题】"校内网开放平台API (.net)" 涉及的是针对校内社交网络平台的API接口的.NET实现,这些接口允许开发者利用.NET框架来与校内网的开放平台进行交互,实现各种功能扩展。 【描述】指出,这个.NET封装提供了开源...

    淘宝开放平台接入指南(商家版V1.0)

    针对商家面临的后台处理效率低下、人力成本高昂等问题,淘宝开放平台通过提供一系列开放的数据接口(API),使得商家能够直接调用这些API来开发各类管理工具,从而实现网店与后台管理系统的数据集成及快速业务协同。...

    TOPFORasp实例(淘宝开放平台ASP版的应用实例)asp版 top api

    淘宝开放平台,这里不再费话了,直接看网址:http://open.taobao.com/ 这里有很多的实例,本人最近也一直在学习。 前几天看到浪子的群里有一位朋友说想要ASP的实例,自己就找了个时间简单写一下。 当然写的不好,...

    新浪微博开放平台API

    微博开放平台是一个基于新浪微博客系统的开放的信息...广大开发者或网站只要登录平台网站并创建应用,即可通过平台开放接口(Open API)对微博系统进行读写,挖掘微博系统的新功能与新玩法。 此资源为C#版本,基于.NET3.5

    淘宝API开发介绍

    1. **OpenAPI形式开放的基础服务**:通过API接口向第三方开放淘宝的基础服务,使得外部开发者能够构建与淘宝网互动的应用程序。 2. **自有的开放式应用平台**:为开发者提供了创建和部署应用的环境,支持各种类型的...

    企业微信开放平台Api.postman_collection.json

    企业微信开放平台Api调试 postman导出 注意:获取access_token 需要更改你自己的corpid 和corpsecret

    淘宝开放API_技术分析

    总结来说,淘宝开放API提供了一个强大的工具集,让开发者能够构建各种与淘宝平台深度集成的应用,包括但不限于用户管理、商品发布、营销推广、售后服务等方面。通过这些API,商家和开发者可以构建出更加个性化的用户...

    spring cloud demo 小试牛刀

    【标题】"Spring Cloud Demo 小试牛刀" ...总之,“Spring Cloud Demo 小试牛刀”项目为我们提供了一个很好的学习平台,通过实际操作和分析,我们可以更深入地掌握Spring Cloud的精髓,提升微服务开发的能力。

    淘宝开放平台TOP,官方发布的最新SDK。

    淘宝开放平台(Taobao Open Platform,简称TOP)是淘宝提供给开发者的一个综合性的服务平台,它允许第三方开发者通过API接口访问和操作淘宝的各种功能,如商品管理、订单处理、用户信息查询等,以此来构建与淘宝生态...

    比亚迪车应用开放平台开放接口API说明书

    比亚迪车应用开放平台开放接口API说明书 本文档是比亚迪车应用开放平台开放接口API的说明书,旨在为开发者提供一个详细的API接口说明书,以便他们可以更好地使用比亚迪车应用开放平台开放接口API。 概述 ---------...

    淘宝开发平台API Java接口

    淘宝开发平台API Java接口是淘宝开放平台(Taobao Open Platform, TOP)为开发者提供的Java语言SDK,用于方便地集成和调用淘宝的各种服务接口。这个SDK使得开发者可以通过编写Java代码来实现与淘宝平台的交互,比如...

    淘宝API sign加密

    淘宝API的签名(sign)加密是安全访问淘宝开放平台(Taobao Open Platform, 简称TOP)的关键步骤。在使用淘宝客API SDK时,开发者需要正确实现签名算法以确保请求的有效性和安全性。这个过程涉及到一系列的技术细节,...

Global site tag (gtag.js) - Google Analytics