# 业务接口格式规范
# 请求格式说明
开放接口服务器通过检验digest对请求进行校验(下面有校验方式)。若确认此次POST请求为正常请求,则接入生效,否则接入失败。
目前勤策已提供了Java、PHP、Python、C#版本的 接入代码示例 (opens new window),如果开发者需要进行别的语言的开发,需要自行根据加解密原理实现算法。
为了确认接口调用来自勤策的授权企业,企业在调用勤策接口时必须带上消息签名,以参数digest标识,勤策需要验证此参数的正确性后再进入具体业务流程。
验证步骤如下:
1)计算签名digest:签名工具 (opens new window)
digest=md5(joint(json格式消息体|appkey|timestamp))
joint 的含义是将参数值 json格式消息体|appkey|timestamp 按照从左到右的顺序拼接成一个字符串,
再进行md5编码,即获得数据签名digest。下文有举例说明。
注意: 生成签名时的消息体要和请求体中消息体保持一致,包括空格回车等
2)勤策开放接口服务器获得请求参数后,重新根据规则生成数据签名dev_digest,比较digest和dev_digest是否相等,相等则表示验证通过
勤策开放接口URL格式如下:
https://{region}/api/{应用编码}/{应用版本}/{接口编码}/{openid}/{timestamp}/{disgest}/{msg_id}
参数说明:
URL参数 | 格式说明 |
---|---|
region | 企业所在数据中心OpenAPI域名,如为:openapi.region1.qince.com, 如何获取? (opens new window) |
应用编码 | 需要对接的功能模块,如部门信息为:organization |
应用版本 | 对接应用的版本号,如:v1 |
接口编码 | 对接应用的接口,如新增部门:addOrganization |
openid | 企业接入唯一授权标识,为19位随机字符串,由勤策统一分配 |
appkey | 企业授权数据签名密钥,为18位随机字符串,由勤策统一分配 |
timestamp | 请求消息时间。格式:yyyyMMddHHmmSS。如:20140701142836 |
digest | 数据签名,用于验证数据的真实性 |
msg_id | 消息ID,由第三方随机生成的唯一标识,勤策系统从URL请求参数中获取msg_id后原样返回 |
注意: openid和appkey须由企业管理员向客户经理申请分配
# 举例说明:接口代码参考示例 (opens new window)
新增部门接口示例:
企业OpenAPI域名REGION: openapi.region1.qince.com
企业OPENID: 5465103569540931532
企业APPKEY: BFCO0PAgIUgd50c0l6
消息体json_data:{"org_id":"ORG001","org_name":"南京掌控网络","org_parent_id":"","org_sequence":100}
获取时间戳为:20150806142836
生成消息ID:ORG00001 (由第三方随机生成的唯一标识,勤策系统从URL请求参数中获取msg_id后原样返回)
1)拼接为一个字符串:
joint_str={"org_id":"ORG001","org_name":"南京掌控网络","org_parent_id":"","org_sequence":001}|BFCO0PAgIUgd50c0l6|20150806142836
2)对该字符串进行md5计算得到签名
digest=Md5(joint_str)
生成数据签名(digest)为:74267bf0cae0998a719879ec9b3c7780
3)生成请求URL:
https://openapi.region1.qince.com/api/organization/v1/addOrganization/5465103569540931532/
20150806142836/74267bf0cae0998a719879ec9b3c7780/ORG00001
4)勤策开放接口服务器对比自身生成的数据签名 dev_digest 和从URL得到的数据签名 digest,发现两者一致,数据签名通过,说明没被篡改,是安全的
# 响应格式说明
响应示例:
{
"return_code": "0",
"return_msg": null,
"msg_id": "90b4b267dd3d49aeace879038b1e7291",
"response_data": "<<DATA>>"
}
数据DATA示例:
[
{
"org_name":"掌控网络下级部门",
"org_id":"zk001",
"org_sequence":"11",
"org_code":"zhangkong",
"org_status":"1",
"org_parent_id":"zk01"
}
]
参数说明:
参数 | 说明 |
---|---|
return_code | 响应码。0:成功,1:失败。错误码说明 (opens new window) |
return_msg | 响应信息,后续可能会有变动,因此不可作为是否调用成功的判据 |
msg_id | 消息ID,由第三方随机生成的唯一标识,勤策系统从URL请求参数中获取msg_id后原样返回 |
response_data | 响应数据: JSON格式的字符串消息体 |