淘宝开发平台(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公用测试账号 |
说是API接口,其实就是按照url+相关参数post到指定地址, 淘宝会返回相应结果XML
下面是对阿里软件API alisoft.validateUser按口进行了测试
所有代码全部按照文档中拷贝,将APPID和 CERT CODE改成我自己的,返回正确结果.主要代码我也copy一下吧,主要注意时间的格式,yyyy-MM-dd hh:mm:ss
1
HttpRequest request =HttpContext.Current.Request;
2
//在软件应用中心跳转到ISV应用时的URL参数中取得,user_id、app_instance_id和token
3
stringASSPUserId =request.Params["user_id"];
4
stringASSPInstanceId =request.Params["app_instance_id"];
5
stringappId =request.Params["app_id"]; //软件注册时获得
6
stringtoken =request.Params["token"]; //每次点击生成不一样的token,并只有10秒钟有效
7
stringcode ="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
stringsipsign =code +"appId"+ appId +"appInstanceId"+ ASSPInstanceId
13
+"sip_apinamealisoft.validateUser"+"sip_appkey"+ appId +"sip_timestamp"+ timestamp
14
+"token"+ token +"userId"+ ASSPUserId;
15
MD5CryptoServiceProvidermd5 =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
stringSIPdate ="sip_appkey="+ appId +"&sip_apiname=alisoft.validateUser&sip_timestamp="+ timestamp +"&sip_sign="++
22
"&userId="+ ASSPUserId +"&appId="+ appId +"&appInstanceId="+ ASSPInstanceId +"&token="+
23
token;
24
ASCIIEncoding encoding =newASCIIEncoding();
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 ="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 =newStreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
40
stringcontent =reader.ReadToEnd();
41
//解析接口返回值,这里选用XML格式的解析,接口默认返回是XML格式
42
XmlDocument xmlDoc =newXmlDocument();
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
stringresult =xe.InnerText;
54
if("1".Equals(result))
55
{
56
Response.Write("1");
57
}
58
elseif"0".Equals(result))
59
{
60
Response.Write("0");
61
}
62
}
63
}
64