淘宝提供了一套基于Http的Api调用方式,详情参见 淘宝开放平台。这是这套Api的系统参数:
完整的调用例子:
1、输入参数为
method=taobao.user.seller.get
timestamp=2013-05-06 13:52:03
format=xml
app_key=test
v=2.0
fields=nick
sign_method=md5
session=test
2、按首字母升序排列
app_key=test
fields=nick
format=xml
method=taobao.user.seller.get
session=test
sign_method=md5
timestamp=2013-05-06 13:52:03
v=2.0
3、连接字符串
连接参数名与参数值,并在首尾加上secret,如下:
testapp_keytestfieldsnickformatxmlmethodtaobao.user.seller.getsessiontestsign_methodmd5timestamp2013-05-06 13:52:03v2.0test
4、生成签名 sign
32位大写MD5值->72CB4D809B375A54502C09360D879C64
5、拼装API请求
将所有参数值转换为UTF-8编码,然后拼装,通过浏览器访问该地址,即成功调用一次接口,如下(http或https网关):
http://gw.api.taobao.com/router/rest?sign=72CB4D809B375A54502C09360D879C64×tamp=2013-05-06+13%3A52%
3A03&v=2.0&app_key=test&method=taobao.user.seller.get&format=xml&session=test&fields=nick
这里为什么要额外地设计一个sign参数呢?这个sign参数究竟是起到什么作用呢?
基于1楼额外补充。
有些数据是隐私。比如订单、金额等。
你作为卖家不会非常希望你的订单数据被别人轻易拿走吧?
如果你的appKey泄露了(泄露的方式很简单,我下了你做的App,然后抓个包)
这时候如果没有sign,我就可以拼接一串url去请求淘宝,然后我就获得了你的数据。
有了sign,淘宝就可以判断发起这个请求的人是不是真正有权限的人,因为我不知道你的secret我就不能创建出有效的sign,就达到了安全的目的。