当前位置: 首页 > news >正文

南宁seo网站建设手机做网站公司

南宁seo网站建设,手机做网站公司,网站开发项目总结模板,vps搭建vpn无法访问国内网站大家好,我是 V 哥。最近的一个项目中,用到企业微信的审批流程,整理出来分享给大家。在企业微信中实现审批流程可以通过调用企业微信的开放API完成,企业微信提供了审批应用接口,用于创建审批模板、发起审批流程以及获取…

大家好,我是 V 哥。最近的一个项目中,用到企业微信的审批流程,整理出来分享给大家。在企业微信中实现审批流程可以通过调用企业微信的开放API完成,企业微信提供了审批应用接口,用于创建审批模板、发起审批流程以及获取审批实例详情。下面 V 哥用一个Java示例代码,来展示如何在企业微信中实现审批流程。

V 哥推荐:2024 最适合入门的 JAVA 课程

实现步骤

  1. 获取企业微信Access Token:每次访问企业微信API接口前需要先获取Access Token。
  2. 创建审批模板(如已有模板则跳过此步骤)。
  3. 发起审批流程:通过指定的模板ID发起审批请求。
  4. 查询审批结果:获取审批的状态和详细信息。

以下代码使用HttpClient发起HTTP请求来调用企业微信API接口。

代码示例

import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;public class WeChatApproval {//下面三个常量定义,需要用你自己的(企业微信开放平台)private static final String CORP_ID = "你的corp_id";private static final String CORP_SECRET = "你的corp_secret";private static final String APPROVAL_TEMPLATE_ID = "你的template_id"; // 审批模板ID// 获取 Access Tokenpublic static String getAccessToken() throws IOException {String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + CORP_ID + "&corpsecret=" + CORP_SECRET;try (CloseableHttpClient client = HttpClients.createDefault()) {HttpGet request = new HttpGet(url);try (CloseableHttpResponse response = client.execute(request)) {String responseBody = EntityUtils.toString(response.getEntity());Map<String, Object> map = new ObjectMapper().readValue(responseBody, Map.class);return map.get("access_token").toString();}}}// 发起审批流程public static String initiateApproval(String accessToken, Map<String, Object> approvalData) throws IOException {String url = "https://qyapi.weixin.qq.com/cgi-bin/oa/applyevent?access_token=" + accessToken;try (CloseableHttpClient client = HttpClients.createDefault()) {HttpPost post = new HttpPost(url);post.setHeader("Content-Type", "application/json");Map<String, Object> requestMap = new HashMap<>();requestMap.put("template_id", APPROVAL_TEMPLATE_ID);requestMap.put("use_template_approver", 1); // 使用模板中的审批人requestMap.put("approver", approvalData.get("approver"));requestMap.put("apply_data", approvalData.get("apply_data"));requestMap.put("summary_list", approvalData.get("summary_list"));String json = new ObjectMapper().writeValueAsString(requestMap);post.setEntity(new StringEntity(json, "UTF-8"));try (CloseableHttpResponse response = client.execute(post)) {String responseBody = EntityUtils.toString(response.getEntity());Map<String, Object> map = new ObjectMapper().readValue(responseBody, Map.class);return map.get("sp_no").toString(); // 返回审批单编号}}}// 查询审批流程状态public static Map<String, Object> getApprovalDetail(String accessToken, String spNo) throws IOException {String url = "https://qyapi.weixin.qq.com/cgi-bin/oa/getapprovaldetail?access_token=" + accessToken;try (CloseableHttpClient client = HttpClients.createDefault()) {HttpPost post = new HttpPost(url);post.setHeader("Content-Type", "application/json");Map<String, Object> requestMap = new HashMap<>();requestMap.put("sp_no", spNo);String json = new ObjectMapper().writeValueAsString(requestMap);post.setEntity(new StringEntity(json, "UTF-8"));try (CloseableHttpResponse response = client.execute(post)) {String responseBody = EntityUtils.toString(response.getEntity());return new ObjectMapper().readValue(responseBody, Map.class);}}}public static void main(String[] args) {try {// 1. 获取Access TokenString accessToken = getAccessToken();System.out.println("Access Token: " + accessToken);// 2. 发起审批流程Map<String, Object> approvalData = new HashMap<>();approvalData.put("approver", new Object[] { Map.of("attr", 1, "userid", new String[] { "approver_userid" }) });approvalData.put("apply_data", Map.of("contents", new Object[] {Map.of("control", "Text", "id", "Text-1", "value", Map.of("text", "请假事由")),Map.of("control", "Date", "id", "Date-1", "value", Map.of("date", "2024-11-01"))}));approvalData.put("summary_list", new Object[] {Map.of("summary_info", Map.of("text", "请假申请"))});String spNo = initiateApproval(accessToken, approvalData);System.out.println("审批单号: " + spNo);// 3. 查询审批状态Map<String, Object> approvalDetail = getApprovalDetail(accessToken, spNo);System.out.println("审批详情: " + approvalDetail);} catch (IOException e) {e.printStackTrace();}}
}

代码说明

  1. 获取Access Token:通过getAccessToken方法获取企业微信的access_token,用于后续接口调用。
  2. 发起审批流程initiateApproval方法通过oa/applyevent接口发起审批流程,传入审批模板ID和审批表单数据(如审批人、申请数据和摘要等)。
  3. 查询审批流程状态getApprovalDetail方法通过oa/getapprovaldetail接口查询审批详情,包括审批状态和各环节的处理结果。

核心参数解释

  • template_id:审批模板ID,由企业微信审批应用中创建。
  • approver:审批人信息,可以指定具体审批人或审批人角色。
  • apply_data:审批申请数据,包含表单控件的数据内容。
  • summary_list:摘要信息,用于在审批列表显示申请概要信息。
  • sp_no:审批单编号,用于查询审批状态。

注意事项

  1. 权限问题:确保调用接口的应用具有审批权限,且已配置了企业微信API调用权限。
  2. 审批模板ID:模板ID需要在企业微信管理后台中创建审批模板时获取。
  3. 审批人配置:审批人需要是企业微信用户,并确保在审批模板中有相关配置。

最后

以上是实现企业微信中的审批流程,如何你也在开发类似的功能,希望可以帮助到你。关注威哥爱编程,编码路上作个同行人。

http://www.yayakq.cn/news/488780/

相关文章:

  • 网站如何判断做的好不好网站php怎么做
  • 蛋糕设计网站百度总部投诉电话
  • 自动发卡网站怎么做如何设计一个网页存放自己的作品
  • 在阿里国际站做的网站上海最近的新闻大事10条
  • 浙江做电缆桥架的公司网站网站设计维护内容
  • 织梦下载网站模板做自主外贸网站和后台费用多少
  • 深圳高端网站制作价格怎么用自己电脑做网站服务器吗
  • 自己做的网站 能收索么wordpress远程代码执行
  • 网站开发文档百度文库天津注册公司优惠政策
  • 漳州企业网站开发江西赣州网站
  • wordpress 神箭手网站改版seo方案
  • 素材网站设计模板海口模板建站平台
  • 天长网站seo老板办公室装修效果图
  • 网站类网站开发源代码网络舆情监测工作总结
  • 西部数码助手网站后台管理建站域名
  • 网站开发培训机构需要多少钱windows没有wordpress
  • 凡科建站源码成都旅游景点攻略自由行攻略
  • 网站如何提交给百度成都哪里好玩好吃
  • 网站建设与维护心得体会金融棋牌网站建设
  • 17一起做网站app去哪个网站做农产品推广
  • 网站管理程序北京外贸推广
  • 网页设计网站长沙温州建网站公司
  • 杭州网站建设(推荐乐云践新)制作企业网站要花多少钱
  • 湛江网站建设方案外包山西大同最新通告今天
  • 有没有免费的网站保定最大的网络公司
  • 网站建设与软件开发哪个好赚钱国际外贸网站建设
  • 网站模板下载地址ftps 网站怎么做
  • 网站开发大公司需要资格证吗html 路径 网站根路径
  • 如何做网站推广私人建设银行手机银行官方网站
  • 专业做房地产网站建设wordpress 生成目录