企业内部开发 服务端API OA 审批 审批申请状态变化回调通知
审批申请状态变化回调通知

订阅后,当企业内指定类型的企业微信“审批应用”单据流程发生变化时,会将审批单最新的流程状态回调给开发者。

1.设置接收事件服务器

查看事件回调详细说明

1.1 设置入口

目前,支持将审批状态变化通知回调给审批应用、指定的自建应用。

1.1.1 审批应用回调地址设置

  • 企业可以在【管理后台->应用和小程序->审批->API->接收事件服务器】中,设置回调地址,并勾选需要进行状态变化回调通知的审批模板类型。
  • 设置后,回调地址可接收审批应用所有允许进行回调的审批申请相关状态变化通知。

1.1.2 自建应用回调地址设置

  • 企业可在【管理后台->应用管理->审批->API->可调用应用】中,设置可调用审批相关接口的自建应用。
  • 设置后,回调地址可接收自建应用可见范围内成员提交的、审批应用允许进行回调的审批申请相关状态变化通知。

注意:只有在【审批->API->可调用应用】中勾选了的自建应用才可以接收到在【审批->API->接收事件服务器】勾选模板相关的审批申请回调通知。

1.2 配置说明

1.2.1 参数设置

进入配置页面,要求填写URL、Token、EncodingAESKey三个参数。

  • URL是企业后台接收企业微信推送请求的访问协议和地址,支持http或https协议(建议使用https)。
  • Token可由企业任意填写,用于生成签名。
  • EncodingAESKey用于消息体的加密,是AES密钥的Base64编码。

1.2.2 其他配置

  • 在审批应用“接收事件服务器”,可设置允许进行回调通知的模板类型,此配置将同样作用于自建应用与第三方应用的回调通知。
  • 在自建应用中,可通过在【应用详情-接收消息-设置API接收】中开关“审批状态通知事件”,来控制是否接收相关回调。

 

2.事件格式

当指定类型的审批申请发生状态变化时,企业微信将向回调地址发送相应的通知事件。
状态变化包括但不限于:催办、撤销、同意、驳回、转审、添加备注等情况。

示例:

<xml>
  <ToUserName><![CDATA[ww1cSD21f1e9c0caaa]]></ToUserName>
  <FromUserName><![CDATA[sys]]></FromUserName>
  <CreateTime>1571732272</CreateTime>
  <MsgType><![CDATA[event]]></MsgType>
  <Event><![CDATA[sys_approval_change]]></Event>
  <AgentID>3010040</AgentID>
  <ApprovalInfo>
    <SpNo>201910220003</SpNo>
    <SpName><![CDATA[示例模板]]></SpName>
    <SpStatus>1</SpStatus>
    <TemplateId><![CDATA[3TkaH5KFbrG9heEQWLJjhgpFwmqAFB4dLEnapaB7aaa]]></TemplateId>
    <ApplyTime>1571728713</ApplyTime>
    <Applyer>
      <UserId><![CDATA[WuJunJie]]></UserId>
      <Party><![CDATA[1]]></Party>
    </Applyer>
    <SpRecord>
      <SpStatus>1</SpStatus>
      <ApproverAttr>2</ApproverAttr>
      <Details>
        <Approver>
          <UserId><![CDATA[WangXiaoMing]]></UserId>
        </Approver>
        <Speech><![CDATA[]]></Speech>
        <SpStatus>1</SpStatus>
        <SpTime>0</SpTime>
      </Details>
      <Details>
        <Approver>
          <UserId><![CDATA[XiaoGangHuang]]></UserId>
        </Approver>
        <Speech><![CDATA[]]></Speech>
        <SpStatus>1</SpStatus>
        <SpTime>0</SpTime>
      </Details>
    </SpRecord>
    <SpRecord>
      <SpStatus>1</SpStatus>
      <ApproverAttr>1</ApproverAttr>
      <Details>
        <Approver>
          <UserId><![CDATA[XiaoHongLiu]]></UserId>
        </Approver>
        <Speech><![CDATA[]]></Speech>
        <SpStatus>1</SpStatus>
        <SpTime>0</SpTime>
      </Details>
    </SpRecord>
    <Notifyer>
      <UserId><![CDATA[ChengLiang]]></UserId>
    </Notifyer>
    <Comments>
      <CommentUserInfo>
        <UserId><![CDATA[LiuZhi]]></UserId>
      </CommentUserInfo>
      <CommentTime>1571732272</CommentTime>
      <CommentContent><![CDATA[这是一个备注]]></CommentContent>
      <CommentId><![CDATA[6750538708562308220]]></CommentId>
    </Comments>
    <StatuChangeEvent>10</StatuChangeEvent>
  </ApprovalInfo>
</xml>

参数说明:

参数说明
Event事件名称:sys_approval_change
SpNo审批编号
SpName审批申请类型名称(审批模板名称)
SpStatus申请单状态:1-审批中;2-已通过;3-已驳回;4-已撤销;6-通过后撤销;7-已删除;10-已支付
TemplateId审批模板id。可在“获取审批申请详情”、“审批状态变化回调通知”中获得,也可在审批模板的模板编辑页面链接中获得。
ApplyTime审批申请提交时间,Unix时间戳
Applyer申请人信息
└ UserId申请人userid
└ Party申请人所在部门pid
SpRecord审批流程信息,可能有多个审批节点。
└ SpStatus审批节点状态:1-审批中;2-已同意;3-已驳回;4-已转审
└ ApproverAttr节点审批方式:1-或签;2-会签
└ Details审批节点详情。当节点为标签或上级时,一个节点可能有多个分支
└ └ Approver分支审批人
└ └ └ UserId分支审批人userid
└ └ Speech审批意见字段
└ └ SpStatus分支审批人审批状态:1-审批中;2-已同意;3-已驳回;4-已转审
└ └ SpTime节点分支审批人审批操作时间,0为尚未操作
└ └ Attach节点分支审批人审批意见附件,赋值为media_id具体使用请参考:文档-获取临时素材
Notifyer抄送信息,可能有多个抄送节点
└ UserId节点抄送人userid
Comments审批申请备注信息,可能有多个备注节点
└ CommentUserInfo备注人信息
└ └ UserId备注人userid
└ CommentTime备注提交时间
└ CommentContent备注文本内容
└ CommentId备注id
└ └ Attach备注意见附件,值是附件media_id具体使用请参考:文档-获取临时素材
StatuChangeEvent审批申请状态变化类型:1-提单;2-同意;3-驳回;4-转审;5-催办;6-撤销;8-通过后撤销;10-添加备注
上一篇
提交审批申请
下一篇
批量获取审批单号