管易C-ERP官网API地址:
C-ERP API接口 - 上海管易云ERP - 服务支持平台
官网只有JAVA-代码示例,Php的示例被报诈骗网站了哈哈哈(冤枉)
但是很多人都用Python去做接口,研究了一下,CSDN、百度都没有完整比较好Python调用管易API的教程。主要应该还是卡在了签名这一步。
思路:
1、主要签名需要用到 hashlib的MD5
2、理解这句话即字典 sign值要secret+json.dumps(字段字典)+secret
sign = Secret + params_json + Secret
sign需要转换成MD5加密==>
再传入params(非json.dump格式化了的)字典==>
post请求时的data再格式化位json.dumps
打印r.text,成功。【注意:传参的appkey、sessionkey、secret请自行找到你们网管了解下哦】
具体做法:
import requests, json
import hashlib
# 设置MD5加密
def md5_encrypt(text):
md5 = hashlib.md5()
md5.update(text.encode('utf-8'))
return md5.hexdigest()
# 传输数据设置
params = {
"appkey": "XXXXXX",
"sessionkey": "你的sessionkey",
"method": "gy.erp.shop.get", # 请求端口(自己在管易API文档找到对应端口即可)
"page_no": "1",
"page_size": "10",
"code": "TM01" # 传参自己选,其实还有很多参数可以选,这个只是其中一种,可以自己研究下自己管易系统的参数
}
Secret = '你的secret'
# 转换成加密模式
params_json = json.dumps(params, separators=(',', ':'))
print(params_json)
# 添加sign参数
raw_string = Secret + params_json + Secret
md5 = hashlib.md5()
md5.update(raw_string.encode('utf-8'))
sign = md5.hexdigest().upper()
params['sign'] = sign
print(params)
url = 'http://v2.api.guanyierp.com/rest/erp_open' # url分为四个,API文档有四个,我们公司用的是这个。
r = requests.post(url, data=json.dumps(params))
print(r.text)