103
前一阵子按照上级指示,根据淘宝
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
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