request 中url拼接排序参数与签名算法

一、参数要求:

{

appId:应用在后台创建应用时分配的应用编号,与应用密钥一一对应

sign:按照当前请求参数名的字母序进行升序排列(排序时区分大小写,除sign外,其它值不为空的参数都参与签名), 将所有参数值组合以key=value 的形式拼成一个新字符串,不同参数值“&”之间没有任何分隔符,最后加上对应的签名密钥appKey 进行签名运算。 如进行MD5签名运算的串为 MD5(key1=value1&key2=value2appKey)

time: 1970年以来的毫秒数,每次请求都要更新,有效期5分钟

version: 接口版本号,目前默认写1.0

}

二、请求path示例:http://test.com/**/**?account=string&appId=string&sign=string&time=0&version=string

三、代码实现:

def test():

  params = {

    "version": "1.0",
"account": "zhangsan",
"appId": "fdsadfsa",
"time": int(time.time() * 1000),
}
keys = sorted(params.keys())
appkey = 'erewqrewq%^&&'
nparams = OrderedDict()
for key in keys:
nparams.update({key: params[key]})
data = urlencode(nparams) + appkey
print(data)
m2 = hashlib.md5()
m2.update(data.encode('utf-8'))
sign = m2.hexdigest()
prefix, suffix =nparams.split("&time=")
return "".join([server, uri, '?',prefix,
"&sign=", sign, "&time=", suffix])
 
 
 
 
 

 

转载于:https://www.cnblogs.com/deeptester-vv/p/11214187.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值