请教下java转python3的加密问题:
具体java代码:
然后我写的报错的python代码如下:
import base64
import hashlib
import requests
params = '''{"logisticCompanyID":"DEPPON","logisticID":"SD2013052303611"}'''
def timestamp():
import time
timestamp_13 = int(time.time() * 1000)
return timestamp_13
companyCode = 'DIANSHANG'
appkey = 'cba123'
def digest():
time = timestamp()
str_join = str(params) + appkey + str(time)
print('加密参数为:', str_join)
hash = hashlib.md5() # 创建md5加密实例
hash.update(str_join.encode())
s = base64.b64encode(hash.digest())
return str(s)[2:-1]
headers = {
"Content-Type": "application/x-www-form-urlencoded;charset=utf-8"
}
data = {
'params': str(params),
'digest': digest(),
'timestamp': str(timestamp()),
'companyCode': companyCode,
'mailNo': '479000244251'
}
response = requests.post('http://dpsanbox.deppon.com/sandbox-web/standard-order/newTraceQuery.action', headers=headers,
data=data)
if __name__ == '__main__':
print(response.json())
然后报错类型:
加密参数为: {"logisticCompanyID":"DEPPON","logisticID":"SD2013052303611"}64510296bc2ddf30bd450c13ead9cf7d1660524556851
加密后的digest:
HWLzzn82HgSF0lVmTdQAYg==
报错(加密的digest):
{'result': 'false', 'reason': '摘要验证失败', 'resultCode': '2002', 'uniquerRequestNumber': '36151859235573476'}
求助下大佬:如何解决?