淘宝OpenAPI使用

淘宝OpenAPI使用,第1张

概述我也使用淘宝OpenAPI也大半年了。不过了,由于阿里软件的文档比较的乱,让很多初学者分不清头绪(注:淘宝OpenAPI是开放在阿里软件的一个平台上,是什么服务集群平台吧)。当然了,在中国,能够将自己的服务资源开放出来给第三方使用,特别是淘宝网这种大型商业网站来说,阿里巴巴的这种分享精神和开放的胸怀还是令人佩服的。因此在使用OpenAPI过程中,我们如果觉得资料不是很充分,也不要过多的抱怨,开放的

我也使用淘宝OpenAPI也大半年了。不过了,由于阿里软件的文档比较的乱,让很多初学者分不清头绪(注:淘宝OpenAPI是开放在阿里软件的一个平台上,是什么服务集群平台吧)。当然了,在中国,能够将自己的服务资源开放出来给第三方使用,特别是淘宝网这种大型商业网站来说,阿里巴巴的这种分享精神和开放的胸怀还是令人佩服的。因此在使用OpenAPI过程中,我们如果觉得资料不是很充分,也不要过多的抱怨,开放的同时意味着责任。呵呵!

 

  在这了,趁端午节放假,将我使用淘宝Open API的心得分享出来,先写一篇简单的入门教程,也算是分享和开放吧。

  通过阅读阿里软件提供的文档,我们对如何调用淘宝OpenAPI有了基本的了解。阿里软件OpenAPI平台即服务集成平台SIP相关的文档链接如下(在使用SIP平台上的OpenAPI还是先要了解下该平台的相关策略如安全策略,访问控制策略等):

  http://wiki.isv.alisoft.com/index.PHP/%E6%9C%8D%E5%8A%A1%E9%9B%86%E6%88%90%E5%B9%B3%E5%8F%B0

  服务集群平台就不多唠叨了,去上面的文档地址去看看。我就简要的讲讲就我所知道的一些值得注意的地方:

  1.淘宝OpenAPI每分钟访问的次数是有限制的,好像是400次/分钟,即一个应用访问任何一个淘宝API,一分钟内最多只能访问400次;

  2.在次数方面,除了上面的控制外,还有日访问次数控制。如果你的应用是上架的,则日访问量没有限制;如果你的应用没有上架,那么一天之内,你访问淘宝OpenAPI的次数累计起来不能超过1000次。不要有意见哦,人家的资源也是有限的,而且还是免费的。

  3.服务集成平台的API的安全级别分为四类:无安全策略校验;签名校验;用户授权校验(包含签名校验);可选用户授权校验(包含签名校验)。淘宝OpenAPI大多都是需要用户授权的。所谓用户授权就是应用软件在 *** 作用户的淘宝数据时,就需要用户授权。如淘宝卖家在使用店铺管理软件维护自己的店铺时,淘宝网就需要淘宝卖家对该店铺软件进行授权,只有授权了,店铺管理软件才能 *** 作淘宝卖家的数据。

  4.授权除了上面所描述的外,授权还有时效性。就是授权是有期限的,现在淘宝授权一次的最大有效时效为一个小时。如果在一个小时内,没用调用任何淘宝OpenAPI,则授权过期了,需要重新授权。而对于未上架的应用,授权时效内不管有没有调用淘宝OpenAPI,授权期限过后就需要重新授权。看来,上架的应用还是有相当大的空间优势。

  其他的就不多唠叨了,还没有在阿里软件注册应用的,还得先去阿里软件平台注册一个应用,注册成功后,你会得到APPID及CERTCODE。其中APP ID是用来标记应用,即你注册应用的ID,CERT CODE则是你应用的密钥,在做签名时用。

  下面直接来个demo,感受下淘宝的OpenAPI。我们调用交易类的taobao.Trade.get为例,该api文档地址为:http://isp.alisoft.com/APIdoc/API/APIIndex.HTML#isp_taobao-6-281。可以知道这个API是用户授权,即需要用户授权才可以访问该用户的交易信息。

  源代码如下:

  import java.security.MessageDigest;

  import java.text.SimpleDateFormat;

  import java.util.Date;

  import java.util.HashMap;

  import java.util.Iterator;

  import java.util.Map;

  import java.util.Set;

  import java.util.TreeSet;

  import org.apache.commons.httpclIEnt.httpClIEnt;

  import org.apache.commons.httpclIEnt.nameValuePair;

  import org.apache.commons.httpclIEnt.methods.PostMethod;

  public class TaobaoOpenAPIDemo

  /**

  * 调用淘宝的taobao.Trade.get demo,

  * 运行该示例时,你需要将appID,appSecret,tID

  * 这三个参数替换为你自己的,就可以运行该demo

  *

  * 在第一次运行时 会提醒你登录淘宝进行授权,

  * 授权成功后 再次运行该demo就可以获取指定交易的信息 呵呵

  *

  * 这只是一个简单的demo,只是为初学者提供方便

  * 有了这个原型 大家就可以各显自己的神通了

  */

  public static voID main(String args)

  // 淘宝Open API平台即SIP平台的入口

  String sipRequestUrl = "http://sip.alisoft.com/sip/rest";

  String appID = "****"; // 在阿里软件平台注册的应用ID,请使用你自己的应用ID

  String appSecret = "******"; // 注册的应用的密钥,请使用你自己应用的密钥

  String taobaoAPIname = "taobao.Trade.get"; // 交易类API

  String sessionID = "1234567";//sessionID是isv应用自己生成的字符串

  //确保每个使用该应用的用户各自的sessionID各不相同

  SimpleDateFormat formater = newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");

  Map ms = new HashMap();

  ms.put("sip_appkey",appID);

  ms.put("sip_APIname",taobaoAPIname);

  ms.put("sip_timestamp",formater.format(new Date()));

  ms.put("sip_sessionID",sessionID);

  ms.put("fIElds","seller_nick,buyer_nick,Title,type,created,sID");

  ms.put("tID","******"); //请设置你要查询的交易号

  ms.put("format","xml");

  ms.put("v","1.0");

  ms.put("sip_sign",getSign(appSecret,ms));

  String result = requestopenAPI(sipRequestUrl,ms);

  if (result != null&&result.startsWith("sip_isp_loginurl:"))

  result = result.replaceAll("&","&");

  System.out.println("打开浏览器,访问下面的URL进行用户授权,授权成功后" +

  ",再次运行该类就可以调用API获取交易信息");

  System.out.println(result.substring("sip_isp_loginurl:".length()));

  else if (result != null)

  System.out.println(result);

  /**

  * 请求淘宝Open API服务

  * @m url 服务集群平台入口

  * @m ms 请求参数

  * @return 请求结果

  */

  public static String requestopenAPI(String url,Map ms)

  httpClIEnt clIEnt = new httpClIEnt();

  PostMethod postMethod = new PostMethod(url);

  try

  nameValuePair postData = new nameValuePair[ms.size()];

  Iterator iters = ms.keySet().iterator();

  int i = 0;

  while (iters.hasNext())

  String key = (String) iters.next();

  postData[i] = new nameValuePair(key,ms.get(key).toString());

  i++;

  postMethod.setRequestbody(postData);

  clIEnt.executeMethod(postMethod);

  String resultCode =postMethod.getResponseheader("sip_status")

  .getValue();

  if (resultCode null ("".equals(resultCode)))

  return null;

  else if ("1004".equals(resultCode))

  return "sip_isp_loginurl:"

  + postMethod.getResponseheader("sip_isp_loginurl")

  .getValue();

  else if (!"9999".equals(resultCode))

  return resultCode

  + ":"

  + postMethod.getResponseheader("sip_errormessage")

  .getValue();

  return postMethod.getResponseBodyAsstring();

  catch (Exception ex)

  ex.printstacktrace();

  finally

  if (postMethod != null)

  postMethod.releaseConnection();

  return null;

  /**

  * 对所有参数进行签名

  * @m secret APP ID对应的密钥

  * @m ms 请求中所有的参数

  * @return 签名

  */

  public static String getSign(String secret,Map ms)

  if (secret null "".equals(secret) ms null)

  throw new RuntimeException(

  "secret or ms is null or blank,please check");

  StringBuilder sb = new StringBuilder().append(secret);

  String result = null;

  try

  Set sortedKeys = new TreeSet();

  sortedKeys.addAll(ms.keySet());

  for (String key : sortedKeys)

  sb.append(key).append(ms.get(key));

  MessageDigest md = MessageDigest.getInstance("MD5");

  result=bytetohex(md.digest(sb.toString().getBytes("utf-8")));

  catch (Exception e)

  throw new RuntimeException(e);

  return result;

  public static String bytetohex(byte b)

  StringBuffer sb = new StringBuffer();

  String stmp = "";

  for (int n = 0; n < b.length; n++)

  stmp = (java.lang.Integer.toHexString(b[n] & 0XFF));

  if (stmp.length() 1)

  sb.append("0").append(stmp);

  else

  sb.append(stmp);

  return sb.toString().toupperCase();

  上面短短的100多行代码只是向初学者展示如何使用淘宝OpenAPI服务。从代码也可以看到,基于rest的OpenAPI的确使用起来相当的方便。当然,要想使用好淘宝OpenAPI,还得好好的阅读淘宝Openapi文档。同时,还需打开自己的思维,使用淘宝OpenAPI编写出有创意的应用。早日上架,早日盈利!

  如果大家有什么问题,可以回复本贴,有问必答。大家相互探讨,共同进步。呵呵!

  编辑推荐

  助推Silverlight 微软与淘宝合作“闪光店铺”

  SaaS开发入门 阿里软件平台HelloWorld开发实例

  微软Silverlight技术 闪光淘宝

  阿里软件投10亿全面进军管理软件市场

  SaaS开发入门 阿里软件平台HelloWorld开发实例

总结

以上是内存溢出为你收集整理的淘宝OpenAPI使用全部内容,希望文章能够帮你解决淘宝OpenAPI使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1026733.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存