API接口文档
文章相关
(Member_article/index)
 
文档说明
阅读对象
本文阅读对象:在线购物平台、人工收银系统、自动化智能收银系统或其他需要接入ERP管理系统,涉及的技术架构师,研发工程师,测试工程师,系统运维工程师。
协议规则
接入ERP管理系统,调用API必须遵循以下规则:
传输方式: 支持使用http接入,但为保证数据安全性,尽量采用HTTPS传输
提交方式: 采用POST方法提交
数据格式: 返回数据为JSON格式
字符编码: 统一采用UTF-8字符编码
签名算法: MD5
签名要求: 请求和接收数据均需要校验签名,详细方法请参考安全规范-签名算法
判断逻辑: 先判断协议字段返回,再判断业务返回,最后判断其它数据状态
安全规范(签名算法)
1、签名算法
签名生成的通用步骤如下:
第一步,设所有发送或者接收到的数据为集合M,将集合M内非文件流参数值的参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串stringA。
特别注意以下重要规则:
◆ 参数名ASCII码从小到大排序(字典序);
◆ 参数名区分大小写;
◆ 验证调用返回或ERP主动通知签名时,传送的sign参数不参与签名,将生成的签名与该sign值作校验。
◆ ERP接口可能增加字段,验证签名时必须支持增加的扩展字段
第二步,在stringA最后拼接上应用密钥(appsecret)得到stringSignTemp字符串,并对stringSignTemp进行MD5运算,再将得到的字符串所有字符转换为大写,得到sign值signValue。
◆ 应用ID(appId)与应用密钥(appsecret)设置路径:ERP后台-->系统设置-->授权密钥
举例:
假设传送的参数如下:
appid: cbcfca37063b0364
mch_id: 10000100
device_info: 1000
body: test
nonce_str: ibuaiVcKdpRxkhJA
第一步:对参数按照key=value的格式,并按照参数名ASCII字典序排序如下:
stringA="appid=cbcfca37063b0364&body=test&device_info=1000&mch_id=10000100&nonce_str=ibuaiVcKdpRxkhJA";
第二步:拼接API应用密钥(appsecret):
stringSignTemp=stringA+"192006250b4c09247ec02edce69f6a2d" //注:应用密钥(appsecret)为ERP后台授权密钥设置的(appsecret)
sign=MD5(stringSignTemp).toUpperCase()="AD7912F5CF0D6ECB6761CC6DE656FF4F" //注:MD5签名方式
最终得到最终发送的数据:
appid:cbcfca37063b0364
mch_id:10000100
device_info:1000
body:test
nonce_str:ibuaiVcKdpRxkhJA
sign:AD7912F5CF0D6ECB6761CC6DE656FF4F
2、生成随机数算法
ERP系统API接口协议中包含字段nonce_str,主要保证签名不可预测。我们推荐生成随机数算法如下:调用随机数函数生成,将得到的值转换为字符串。
版权所有 © 飞度