这两天用需要测试淘宝top的接口,由于之前都用java下做的。现在要转到python了,所以重新写了一个。
考虑到很多朋友可能也会使用python来调用top的接口,可能会遇到诸如签名的潜规则。为此将我的代码直接贴了出来分享一下
#coding=utf-8
import loadmylib
import loadpublib
import md5
import httpreq
import time
def topmd5sign(dict_params=None,secrect=None):
list_params = sorted(dict_params.items(), key=lambda d:d[0])
destr = secrect
for i in range(len(list_params)):
destr = destr + list_params[i][0] + list_params[i][1]
tempstr = destr+secrect
m = md5.new(tempstr)
result = m.hexdigest().upper()
return result
def reqtopurl(dict_user_params=None,method=None,url=None):
timestamp = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
session ="24235ade922e146bf6074dc080e76fcb70e23";
dict_all_params={'v':'2.0','method':method,'format':'xml','app_key':'488888','timestamp':timestamp,'session':session,'sign_method':'md5'}
for i in range(len(dict_user_params)):
dict_all_params[dict_user_params.keys()[i]] = dict_user_params[dict_user_params.keys()[i]]
sign = topmd5sign(dict_all_params,"0ebbcccfee18d7ad1aebc5b135ffa906")
dict_all_params['sign'] = sign
print dict_all_params
url = "http://10.232.12.26:8080/top/router/rest?"
rspresult = httpreq.requrl_stand(url,dict_all_params)
print rspresult
if __name__ =='__main__':
adict = {'start_date':'2010-08-29 00:00:00','end_date':'2010-09-02 00:00:00','service_staff_id':'cntaobao美丽人生:)'}
method = 'taobao.wangwang.eservice.chatrecord.get'
reqtopurl(adict,method)