103

 前一阵子按照上级指示,根据淘宝

API开发符合自已应用的系统,比如批量上传,批量修改名称,价格等功能什么的,在此就将我的开发历程写一写,为自己前段时间的工作做个总结。

淘宝开发平台(http://www.taobao.com/theme/tao_source/#prev),向第三方开发者提供API接口和相关开发环境的平台,使开发者可以开发属于自已的系统应用于淘宝店铺和阿里上,同时,运用SAAS模式,开发者开发的系统也可以在该平台上进行销售。

为进行开发做的准备,得在开发同盟网站注册帐号(http://isv.alisoft.com/isv/portal/home/home.jspa),这方面大家参照网店帮助文档吧。

下面简要列举淘宝开发的API接口及功能说明,如下:

 

API列表

阿里软件API

用户类

 alisoft.validateUser

在调用任何其它接口前,必须要调用此接口.此接口用于验证用户身份,一般从Alisoft软件互联平台跳转到ISV应用的身份验证过程中需要使用到。

 alisoft.validateAppUser

此接口方法以实现验证某个用户是否某个订阅实例的有效用户。

 alisoft.udb.getUserId

根据阿里巴巴中文站(或淘宝)帐号,获取用户在软件互联平台的用户ID。

 alisoft.udb.getDomainLoginId

根据软件互联平台的用户ID,获取用户的阿里巴巴中文站(或淘宝)帐号。

订购类

 alisoft.getSubscCtrl

此接口方法以实现Isv查询订阅记录的功能。

 alisoft.getUsingUser

此接口方法以实现获取某个用户订购的应用的用户使用列表。

科目类

 科目类数据结构

提供在线财务系统的科目数据结构。

 alisoft.fi.account.getDetailAccounts

此接口方法实现获取所有当前公司的末级科目列表。

 alisoft.fi.account.getAccountByCode

此接口方法实现根据科目代码获取科目对象。

凭证类

 凭证类数据结构

提供在线财务系统的凭证数据结构。

 alisoft.fi.voucher.genVoucher

此接口方法实现生成会计凭证。

淘宝API

查看淘宝API公用测试账号

用户类

 用户类数据结构

提供淘宝上注册用户的个人资料数据结构。

 taobao.users.get

此接口方法以实现批量得到用户公开资料。

 taobao.user.get

此接口方法以实现得到单个用户资料

类目属性类

 类目数据结构

提供的数据结构可以实现淘宝搜索页面的类目属性展示和商品发布类目属性的选择。

 taobao.itemcats.list.get

此接口方法以实现得到前台展示的供买家浏览的商品类目。

 taobao.itemcats.get

此接口方法以实现得到后台供卖家发布商品的标准商品类目。

 taobao.shopcats.list.get

此接口方法以实现得到前台展示的店铺类目。

 taobao.sellercats.list.get

此接口方法以实现得到前台展示的店铺内卖家自定义商品类目。

 taobao.itemprops.get

此接口方法以实现得到后台供卖家发布商品用的商品标准属性和属性值列表。

 taobao.itemprop.get

此接口方法以实现得到后台供卖家发布商品用的单个商品属性。

 taobao.itemprops.list.get

此接口方法以实现得到前台展示的供买家浏览的商品类目下的第一层属性列表

 taobao.itemprop.list.get

此接口方法以实现得到前台展示的供买家浏览的商品属性。

 taobao.spu.get

此接口方法以实现得到得到spu。

商品类

 商品类数据结构

提供商品搜索数据结构。

 taobao.items.get

此接口方法以实现搜索商品信息。

 taobao.items.onsale.get

此接口方法以实现得到当前会话用户(必须为卖家)的出售中商品列表。

 taobao.items.instock.get

此接口方法以实现搜索当前会话用户(必须为卖家)的库存商品。

 taobao.item.get

此接口方法以实现搜索单个商品信息。

 taobao.item.add

此接口方法以实现添加一个商品。

 taobao.item.update

此接口方法以实现更新商品。

交易类

交易类数据结构

提供交易查询数据结构。

 taobao.trades.bought.get

此接口方法以实现搜索当前会话用户做为买家达成的交易记录。

 taobao.trades.sold.get

此接口方法以实现搜索当前会话用户(做为卖家)已卖出的交易数据。

 taobao.trades.get

此接口方法以实现搜索交易公开信息。

 

 说是API接口,其实就是按照url+相关参数post到指定地址, 淘宝会返回相应结果XML

下面是对阿里软件API alisoft.validateUser按口进行了测试

所有代码全部按照文档中拷贝,将APPID和 CERT CODE改成我自己的,返回正确结果.主要代码我也copy一下吧,主要注意时间的格式,yyyy-MM-dd hh:mm:ss 

Code
 1HttpRequest request = HttpContext.Current.Request;
 2        //在软件应用中心跳转到ISV应用时的URL参数中取得,user_id、app_instance_id和token
 3        string ASSPUserId = request.Params["user_id"];
 4        string ASSPInstanceId = request.Params["app_instance_id"];
 5        string appId = request.Params["app_id"]; //软件注册时获得
 6        string token = request.Params["token"]; //每次点击生成不一样的token,并只有10秒钟有效
 7        string code = "6edec0e0f98d11dda9cea2a8074f2e0a";//软件注册时获得
 8        System.DateTime timestamp = System.DateTime.Now.ToString(“yyyy-MM-dd hh:mm:ss”);//时间获得当前系统时间
 9        if (ASSPInstanceId!=null)
10        { //sip_sign签名字段的生成,将CERT CODE和所有接口要传的参数进行组合,再将组装好的字符串进行md5加
11//密后转成16进制后得到一个32位的密文
12            string sipsign = code + "appId" + appId + "appInstanceId" + ASSPInstanceId 
13+ "sip_apinamealisoft.validateUser" + "sip_appkey" + appId + "sip_timestamp" + timestamp 
14+ "token" + token + "userId" + ASSPUserId;
15            MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
16            sipsign = BitConverter.ToString(md5.ComputeHash(Encoding.UTF8.GetBytes(sipsign))).Replace("-", "");
17            //sip_sign生成END
18
19            //系统级参数拼装,包括sip_appkey、sip_apiname、sip_timestamp和sip_sign,sip_apiname是接
20//口名这里举validateUser为例,再加上接口级参数拼装
21            string SIPdate ="sip_appkey=" + appId + "&sip_apiname=alisoft.validateUser&sip_timestamp=" + timestamp + "&sip_sign=" + sipsign+
22"&userId=" + ASSPUserId + "&appId=" + appId + "&appInstanceId=" + ASSPInstanceId + "&token=" +
23 token;
24            ASCIIEncoding encoding = new ASCIIEncoding();
25            byte[] postdata = encoding.GetBytes(SIPdate);//所有要传参数拼装
26            //目前阿里软件的服务集成平台(SIP)的接口测试地址是:http://sipdev.alisoft.com/sip/rest,生
27//产环境地址是:http://sip.alisoft.com/sip/rest,
28            //这里使用测试接口先,到正式上线时需要做切换
29            HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://sipdev.alisoft.com/sip/rest");
30            myRequest.Method = "POST";
31            myRequest.ContentType = "application/x-www-form-urlencoded";
32            myRequest.ContentLength = postdata.Length;
33            Stream newStream = myRequest.GetRequestStream();
34            // 发送请求
35            newStream.Write(postdata, 0, postdata.Length);
36            newStream.Close();
37            // 获得接口返回值
38            HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
39            StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
40            string content = reader.ReadToEnd();
41            //解析接口返回值,这里选用XML格式的解析,接口默认返回是XML格式
42            XmlDocument xmlDoc = new XmlDocument();
43            xmlDoc.LoadXml(content);
44            XmlNode xn = xmlDoc.SelectSingleNode("String");
45           // windowalert(content);
46            if (xn == null)
47            {
48                //用户无权使用。。。。
49            }
50            else
51            {
52                XmlElement xe = (XmlElement)xn;
53                string result = xe.InnerText;
54                if ("1".Equals(result))
55                {
56                    Response.Write("1");
57                }
58                else if ("0".Equals(result))
59                {
60                    Response.Write("0");
61                }
62            }
63        }
64
 

 

相关推荐