首页 > 编程知识 正文

企业微信打卡API,企业微信api开发教程

时间:2023-05-03 13:56:52 阅读:231540 作者:843

获取企业wydlf打开API上面的数据

根据企业ID和打卡模块的secret获取access_token

打卡传参body为json格式的字符传

创建打卡对象把参数写入,useridlist为list格式。转json

企业wydlf调用代码

package com.westvalley.rrl.wechat.service;import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.UUID;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.jfinal.kit.LogKit;import com.westvalley.ctrl.apprrl.fixedassets.Cache.CacheManager;import com.westvalley.ctrl.apprrl.fixedassets.bean.Cache;import com.westvalley.http.HttpXmlClientProxy;import com.westvalley.rrl.fixedassets.utils.EncryptUtils;import com.westvalley.rrl.wechat.bean.WechatUser;import com.westvalley.rrl.wechat.bean.WechatWork;import com.westvalley.rrl.wechat.prop.WechatProp;import com.westvalley.rrl.wechat.utils.DateUtils;public class WechatService { private WechatProp wechatProp = WechatProp.me(); private String corpid; private String secret; /** * 打卡 * @return */ public String getWorkDate(){ corpid = getWXstr("corpid"); secret = getWXstr("punchCardSecret"); String accessTokenVal = isCache("WORKACCESSTOKEN"); //查询打卡记录 //List<Record> users = Db.find("select id from hrmresource where status=0"); List<String> useridlist = getAddressBook(); LogKit.error("users---->"+useridlist); String starttime = DateUtils.getSECBeginTimes(new Date()); String endtime = DateUtils.getSECEndTimes(new Date()); WechatWork wechatWork = new WechatWork(); wechatWork.setOpencheckindatatype("3"); wechatWork.setStarttime(starttime); wechatWork.setEndtime(endtime); wechatWork.setUseridlist(useridlist); String body = JSON.toJSONString(wechatWork); LogKit.error("users-body--->"+body); String work = HttpXmlClientProxy.httpPost("https://qyapi.weixin.qq.com/cgi-bin/checkin/getcheckindata?access_token="+accessTokenVal+"", body); LogKit.error("work------------->"+work); return work; } /** * 通讯录 * @return */ public List<String> getAddressBook(){ corpid = getWXstr("corpid"); secret = getWXstr("addressBookSecret"); String accessTokenVal = isCache("ADDRESSBOOK"); String body = HttpXmlClientProxy.httpGet("https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token="+accessTokenVal+"&department_id=1&fetch_child=1"); String userlist = JSON.parseObject(body).getString("userlist"); @SuppressWarnings("unchecked") List<WechatUser> wechatUsers = JSONObject.parseArray((userlist), WechatUser.class); List<String> lists = new ArrayList<String>(); for(int i=0 ; i < wechatUsers.size() ; i++){ lists.add(wechatUsers.get(i).getUserid()); } return lists; } /** * 获取配置的参数 * @param key * @return */ public String getWXstr(String key){ return wechatProp.getPropValue(key); } /** * AccessToken进行判断获取 * @param secretKey * @return */ public String isCache(String secretKey){ Cache cacheAccessToken = CacheManager.getCacheInfo(secretKey); LogKit.error("获取企业wydlf打卡的cacheAccessToken------------>"+JSON.toJSONString(cacheAccessToken)); String accessTokenVal = ""; if(cacheAccessToken == null){ accessTokenVal = getAccessToken(); CacheManager.putCacheInfo(secretKey, accessTokenVal, 1000*60*60*2, false); }else{ if(cacheAccessToken.getValue() == null){ accessTokenVal = getAccessToken(); CacheManager.putCacheInfo(secretKey, accessTokenVal, 1000*60*60*2, false); }else{ accessTokenVal = cacheAccessToken.getValue().toString(); } } return accessTokenVal; } /** * 获取企业wydlf的AccessToken * @return */ public String getAccessToken(){ String body = HttpXmlClientProxy.httpGet("https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+corpid+"&corpsecret="+secret); return JSON.parseObject(body).getString("access_token"); } /** * 获取企业wydlf的jsapiTicket * @param accessToken * @return */ public String getJsapiTicket(String accessToken){ String body = HttpXmlClientProxy.httpGet("https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token="+accessToken); return JSON.parseObject(body).getString("ticket"); } /** * 签名加密 * @param jsapiTicket * @return */ public String signature(String jsapiTicket,String nowUrl){ try { String noncestr = UUID.randomUUID().toString().replace("-", "").substring(0, 16); String timestamp=String.valueOf(new Date().getTime() / 1000); nowUrl = URLDecoder.decode(nowUrl, "UTF-8"); String appendStr = "jsapi_ticket="+jsapiTicket+"&noncestr="+noncestr+"&timestamp="+timestamp+"&url="+nowUrl; String signature = EncryptUtils.SHA1(appendStr); Map<String,Object> map = new HashMap<String,Object>(); map.put("noncestr",noncestr); map.put("timestamp",timestamp); map.put("signature",signature); map.put("appid", corpid); String shaSignature = JSON.toJSONString(map); LogKit.error("获取企业wydlf的Signature"+shaSignature); return shaSignature; } catch (UnsupportedEncodingException e) { return e.getMessage(); } }} wx

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。