前一阵子按照上级指示,根据淘宝API开发符合自已应用的系统,比如批量上传,批量修改名称,价格等功能什么的,在此就将我的开发历程写一写,为自己前段时间的工作做个总结。
淘宝开发平台(http://www.taobao.com/theme/tao_source/#prev),向第三方开发者提供API接口和相关开发环境的平台,使开发者可以开发属于自已的系统应用于淘宝店铺和阿里上,同时,运用SAAS模式,开发者开发的系统也可以在该平台上进行销售。
为进行开发做的准备,得在开发同盟网站注册帐号(http://isv.alisoft.com/isv/portal/home/home.jspa),这方面大家参照网店帮助文档吧。
下面简要列举淘宝开发的API接口及功能说明,如下:
API列表 |
阿里软件API |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
说是API接口,其实就是按照url+相关参数post到指定地址, 淘宝会返回相应结果XML
下面是对阿里软件API alisoft.validateUser按口进行了测试
所有代码全部按照文档中拷贝,将APPID和 CERT CODE改成我自己的,返回正确结果.主要代码我也copy一下吧,主要注意时间的格式,yyyy-MM-dd hh:mm:ss
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
下一篇将对淘宝API一些接口进行测试,是在正式开发之前对接口的功能的一种测试,同时会把测试DEMO提供大家,