规则:请求参数按字典升序排列,以key=value&key=value拼接,加上appkey,通过MD5加密生成签名。
class api_sign(unittest.TestCase):
def data_processing(self,data):
"""
data: 需要签名的数据,字典类型
return: 处理后的字符串, 格式为:参数名称=参数值,并用&连接
"""
dataList = []
for k in sorted(data):
dataList.append(("%s=%s" %(k, data[k])))
return "&".join(dataList)
def md5_sign(self,data):
"""
MD5签名
app_pwd: MD5签名需要的字符串
return: 签名后的字符串api_sign
"""
data = app_pwd+self.data_processing(data)+app_pwd
md5 = hashlib.md5()
md5.update(data.encode("utf-8"))
return md5.hexdigest()
参考文章:https://blog.youkuaiyun.com/weixin_37579123/article/details/89637983