审批流打通接口设计
待办接入流程
图 1-0-1 申请秘钥对
图 1-0-2 配置应用待办
图1-0-3 企业微信审核待办
图1-0-4 数字工厂审核待办
审批流打通时序图
授权接口(应用侧提供)
接口描述:应用侧提供授权接口,数字工厂后续调用应用侧接口会携带授权令牌供应用侧校验身份。
请求方式 POST
请求地址 {url}/access_token
请求参数
名称 | 类型 | 描述 |
---|---|---|
url | string | 合作方应用接口地址 |
appId | string | App ID,应用的唯一ID |
appSecret | string | App Secret,应用的凭证密钥 |
- 请求体(Request Body)
- 请求返回体(Response Body):
名称 | 类型 | 错误码 |
---|---|---|
errorCode | int | 错误码。0表示成功 |
accessToken | string | 授权令牌 |
expiresIn | int | 令牌过期时间,单位:秒。 |
注意:所返回的 Token 凭证需要在一定时间内保持有效,一般推荐此有效期 2 小时。以下所有接口都需要提供此Token 凭证进行鉴权。
鉴权完成获得Token凭证后,以下所有的其他 API 必须检查该凭证,即在请求的 header 中Authorization字段获取凭证信息。 Authorization: [Bearer token]
获取审批列表接口(应用侧提供)
接口描述:应用侧提供查询审批列表接口,数字工厂待办页面展示待办列表会使用该接口去应用侧查回数据。
请求方式 GET
请求地址 {url}/backlog_list?pageIndex={pageIndex}&pageSize={pageSize}&userid=123&status=0
请求参数
名称 | 类型 | 描述 |
---|---|---|
url | string | 合作方应用接口地址 |
pageIndex | int | 分页索引(从0开始) |
pageSize | int | 分页大小 |
status | int | 待办状态,0表示待审批,1表示已审批 |
userid | string | 数字工厂用户id |
- 请求返回体(Response Body):
名称 | 类型 | 错误码 |
---|---|---|
errorCode | int | 错误码。0表示成功 |
total | int | 待办列表总数 |
data | int | 待办数据 |
data.id | string | 待办任务id |
data.backlogName | string | 待办任务名称 |
data.describe | string | 待办任务描述 |
data.createAt | string | 待办任务创建时间 |
data.backDetail | string | 预留字段,待办详情页地址 |
data.status | string | 审批状态,可取值:待审批、已同意、已驳回等。 |
审批待办接口(应用侧提供)
接口描述:用户处理应用侧的回调,用户在企业微信审核后,数字工厂会使用该接口更新应用侧审批状态。
请求方式 POST
请求地址 {url}/check
参数说明:
参数 | 说明 |
---|---|
SpNo | 审批编号 |
SpName | 审批申请类型名称(审批模板名称) |
SpStatus | 申请单状态:1-审批中;2-已通过;3-已驳回;4-已撤销;6-通过后撤销;7-已删除;10-已支付 |
TemplateId | 审批模板id。 |
ApplyTime | 审批申请提交时间,Unix时间戳 |
Applyer | 申请人信息 |
└ UserId | 申请人userid |
SpRecord | 审批流程信息,可能有多个审批节点。 |
└ SpStatus | 审批节点状态:1-审批中;2-已同意;3-已驳回;4-已转审 |
└ ApproverAttr | 节点审批方式:1-或签;2-会签 |
└ Details | 审批节点详情。当节点为标签或上级时,一个节点可能有多个分支 |
└ └ Approver | 分支审批人 |
└ └ └ UserId | 分支审批人userid |
└ └ Speech | 审批意见字段 |
└ └ SpStatus | 分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审 |
└ └ SpTime | 节点分支审批人审批操作时间,0为尚未操作 |
└ └ Attach | 节点分支审批人审批意见附 |
Notifyer | 抄送信息,可能有多个抄送节点 |
└ UserId | 节点抄送人userid |
Comments | 审批申请备注信息,可能有多个备注节点 |
└ CommentUserInfo | 备注人信息 |
└ └ UserId | 备注人userid |
└ CommentTime | 备注提交时间 |
└ CommentContent | 备注文本内容 |
└ CommentId | 备注id |
└ └ Attach | 备注意见 |
StatuChangeEvent | 审批申请状态变化类型:1-提单;2-同意;3-驳回;4-转审;5-催办;6-撤销;8-通过后撤销;10-添加备注 |
- 请求体(Request Body)
- 请求返回体(Response Body):
名称 | 类型 | 错误码 |
---|---|---|
errorCode | int | 错误码。0表示成功 |
errorMsg | string | 错误提示 |
创建企业微信审批(平台侧提供)
接口描述:创建企业微信审批通道
ApplyEvent
请求域名:请求域名:http://iam-api.{工业环境域名}
接口类型:OpenAPI
接口请求方式:POST
请求参数
名称 | 类型 | 描述 | 必须 |
---|---|---|---|
creator_userid | string | 申请人账号id | 是 |
template_id | string | 模板的唯一标识id,取值参考注释1 | 是 |
approver | object | 审批流程信息,用于指定审批申请的审批流程,支持单人审批、多人会签、多人或签,可能有多个审批节点 | 是 |
approver.userid | string | 审批节点审批人userid列表,若为多人会签、多人或签,需填写每个人的userid | 是 |
approver.attr | int | 节点审批方式:1-或签;2-会签,仅在节点为多人审批时有效 | 是 |
notifyer | string | 抄送人节点userid列表 | 否 |
notify_type | int | 抄送方式:1-提单时抄送(默认值); 2-单据通过后抄送;3-提单和单据通过后抄送 | 否 |
apply_data | object | 审批申请数据,可定义审批申请中各个控件的值。取值参考注释2 | 是 |
summary_list | object | 摘要信息,用于显示在审批通知卡片、审批列表的摘要信息,最多3行 | 是 |
summary_list.summary_info | object | 摘要行信息,用于定义某一行摘要显示的内容 | 是 |
summary_list.summary_info.text | string | 摘要行显示文字,用于记录列表和消息通知的显示,不要超过20个字符 | 是 |
- 请求体(Request Body)
- 请求返回体(Response Body):
名称 | 类型 | 错误码 |
---|---|---|
Code | int | 错误码。0表示成功 |
Msg | string | 错误提示 |
sp_no | string | 表单提交成功后,返回的表单编号 |
注释1
模板id取值参考
模板名称 | 模板id(dev环境) | 模板id(test环境) |
---|---|---|
出差 | C4RYzCPXZDSmHDvj2jCfYMBeSz9zVpgzZSpNzPCnM | 3WKhn8axeNKHD4uajazhnAD9Qzv54BPBUoLU3ULy |
加班 | C4RYzCPXZDSmHDvj2jCfYMBeSz9zVrBoYi3TqzZ7v | C4RYzCUtbw5gYGF5ty3gzKec8vdEqmqzhHM47jRzR |
生产订单审批 | 3WKhuwSeZKgvu9jfN5oeUEJ4LkZjbrV2z8JMJfPW | |
... | ... |
注释2
apply_data 取值参考
当模板取值为出差时(templateId=C4RYzCPXZDSmHDvj2jCfYMBeSz9zVpgzZSpNzPCnM),apply_data 取值如下:
参数 | 说明 |
---|---|
attendance | 假勤内容,即申请人在此组件内选择的假勤信息 |
└ type | 假勤组件类型:1-请假;3-出差;4-外出;5-加班 |
└ date_range | 假勤组件时间选择范围 |
└ └ type | 时间展示类型:day-日期;hour-日期+时间 |
└ └ new_begin | 开始时间戳,同一人new_begin不能重复 |
└ └ new_end | 结束时间戳,同一人new_end不能重复 |
└ └ new_duration | 请假时长,单位秒 |
apply_data.contents.control | 控件类型。填示例中的值 |
apply_data.contents.id | 控件id:控件的唯一id。填示例中的值 |
注释3
apply_data 取值参考
dev环境
当模板取值为加班时(templateId=C4RYzCPXZDSmHDvj2jCfYMBeSz9zVrBoYi3TqzZ7v),apply_data 取值如下:
test环境
当模板取值为出差时(templateId=C4RYzCUtbw5gYGF5ty3gzKec8vdEqmqzhHM47jRzR),apply_data 取值如下:
参数 | 说明 |
---|---|
date | 日期/日期+时间内容 |
└ type | 时间展示类型:day-日期;hour-日期+时间 ,和对应模板控件属性一致 |
└ s_timestamp | 时间戳-字符串类型,在此填写日期/日期+时间控件的选择值,以此为准 |
注释4
apply_data 取值参考
dev环境
当模板取值为生产订单审批时(templateId=3WKhuwSeZKgvu9jfN5oeUEJ4LkZjbrV2z8JMJfPW),apply_data 取值如下: