/**
*
*/
package com.allinpay.ehr.api.weixin;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.allinpay.ehr.adutil.metadata.ContentTypes;
import com.allinpay.ehr.adutil.tool.CustomPropertyConfigurer;
import com.allinpay.ehr.adutil.tool.DateUtils;
import com.allinpay.ehr.adutil.tool.HttpUtil;
import com.allinpay.ehr.api.common.BaseAction;
import com.allinpay.ehr.api.common.memcache.MemcacheManager;
import com.allinpay.ehr.api.common.memcache.MemcachedClient;
import com.allinpay.ehr.api.weixin.vo.AccessTokenTimeVO;
import com.allinpay.ehr.api.weixin.vo.AccessTokenVO;
import com.allinpay.ehr.api.weixin.vo.ReqBatchgetMaterialVO;
import com.allinpay.ehr.api.weixin.vo.ReqBatchuntaggingVO;
import com.allinpay.ehr.api.weixin.vo.ReqPreviewTextVO;
import com.allinpay.ehr.api.weixin.vo.ReqPreviewVO;
import com.allinpay.ehr.api.weixin.vo.ResBatchgetMaterialItemVO;
import com.allinpay.ehr.api.weixin.vo.ResBatchgetMaterialNewsitemVO;
import com.allinpay.ehr.api.weixin.vo.ResBatchgetMaterialVO;
import com.allinpay.ehr.api.weixin.vo.ResCommonVO;
import com.allinpay.ehr.api.weixin.vo.ResMaterialcountVO;
import com.allinpay.ehr.api.weixin.vo.ResSendAllVO;
import com.allinpay.ehr.api.weixin.vo.ResTagGet;
import com.allinpay.ehr.api.weixin.vo.ResTagItemVO;
import com.allinpay.ehr.api.weixin.vo.ResTagVO;
import com.allinpay.ehr.api.weixin.vo.ResTemplItemVO;
import com.allinpay.ehr.api.weixin.vo.ResTemplateDataVO;
import com.allinpay.ehr.api.weixin.vo.ResTemplateItemVO;
import com.allinpay.ehr.api.weixin.vo.ResTmplVO;
import com.allinpay.ehr.api.weixin.vo.ResWxTemplateListVO;
import com.allinpay.ehr.api.weixin.vo.ResWxTemplateVO;
import com.allinpay.ehr.api.weixin.vo.SendAllFilterVO;
import com.allinpay.ehr.api.weixin.vo.SendAllMpnewsVO;
import com.allinpay.ehr.api.weixin.vo.SendAllTextExVO;
import com.allinpay.ehr.api.weixin.vo.SendAllVO;
import com.allinpay.ehr.api.weixin.vo.TagInfoListVO;
import com.allinpay.ehr.api.weixin.vo.TagInfoVO;
import com.allinpay.ehr.api.weixin.vo.WXErrorInfoVO;
import com.allinpay.ehr.api.weixin.vo.WordsCommonInfoVO;
import com.allinpay.ehr.api.weixin.vo.WordsInfoVO;
import com.allinpay.ehr.interfaces.weixin.dto.AccountDTO;
import com.allinpay.ehr.interfaces.weixin.dto.MessageinfoDTO;
import com.allinpay.ehr.interfaces.weixin.dto.UserInfo;
import com.allinpay.ehr.interfaces.weixin.dto.WXticketsDTO;
import com.allinpay.ehr.interfaces.weixin.dto.WeiXinAuthDTO;
import com.allinpay.ehr.interfaces.weixin.service.IAccountService;
import com.allinpay.ehr.interfaces.weixin.service.IWXAuthService;
import com.allinpay.ehr.interfaces.weixin.service.IWXticketsService;
/**
* @Description: TODO
* @return
* @author
* @date Nov 6, 20184:31:56 PM
*/
/**
* @author DELL
*
*/
@Service
public class WeiXinClient extends BaseAction {
private final static Logger logger = LoggerFactory.getLogger(WeiXinClient.class);
private IAccountService accountService = getService(IAccountService.class);
private IWXAuthService authService = getService(IWXAuthService.class);
private IWXticketsService ticketsService = getService(IWXticketsService.class);
@Autowired
@Qualifier("memcachedClient")
MemcachedClient memClient;
// private static final ApplicationContext ac = new
// ClassPathXmlApplicationContext("memcached.xml");
// 获取第三方平台access_token
public String GetComponentAccessToken(Boolean refresh) {
MemcacheManager memcacheManager = memClient.getClient();
if (!refresh && memcacheManager.containsKey("AD_ComponentAccessToken")) {
String access_token = memcacheManager.get("AD_ComponentAccessToken").toString();
logger.info("从缓存中获取到第三方平台Component_access_token:" + access_token);
return access_token;
}
// logger.info("开始重新获取第三方平台Component_access_token.....");
String appid = (String) CustomPropertyConfigurer.getContextProperty("appid");
String appsecret = (String) CustomPropertyConfigurer.getContextProperty("appsecret");
String component_verify_ticket = "";
if (memcacheManager.containsKey("component_verify_ticket")) {
component_verify_ticket = memcacheManager.get("component_verify_ticket").toString();
}
if (!StringUtils.isNotBlank(component_verify_ticket)) {
WXticketsDTO tickDto = ticketsService.selectLastOne();
if (tickDto != null) component_verify_ticket = tickDto.getTicket();
}
if (!StringUtils.isNotBlank(component_verify_ticket)) {
logger.error("未接收到component_verify_ticket的推送值,获取到第三方平台Component_access_token失败");
return "";
}
String postStr = String.format("{\"component_appid\":\"%s\",\"component_appsecret\":\"%s\",\"component_verify_ticket\":\"%s\"}", appid, appsecret, component_verify_ticket);
logger.info(String.format("获取component_access_token请求postStr:%s", postStr));
String url = "https://api.weixin.qq.com/cgi-bin/component/api_component_token?component_appid=" + appid + "&component_appsecret=" + appsecret + "&component_verify_ticket=" + component_verify_ticket;
logger.info(String.format("获取component_access_token请求url:%s", url));
String httpOrgCreateTestRtn = HttpUtil.doPostStr(postStr, url);
// 正常返回:{"component_access_token":"61W3mEpU66027wgNZ_MhGHNQDHnFATkDa9-2llqrMBjUwxRSNPbVsMmyD-yq8wZETSoE5NQgecigDrSHkPtIYA",
// "expires_in":7200}
logger.info(String.format("获取component_access_token返回:%s", httpOrgCreateTestRtn));
// 错误返回:{"errcode":61005,"errmsg":"component ticket is expired hint: [CNf3IA0075hb96]"}
if (httpOrgCreateTestRtn.indexOf("component ticket is expired hint") != -1) {
logger.error("未获取到最新的微信推送的component ticket ,component ticket is expired !...");
// return "";
}
JSONObject object = JSONObject.parseObject(httpOrgCreateTestRtn);
String access_token = object.getString("component_access_token");
if (access_token != null && access_token.length() > 0) {
logger.info(String.format("成功获取component_access_token:%s", access_token));
if (memcacheManager.containsKey("AD_ComponentAccessToken")) {
memcacheManager.replace("AD_ComponentAccessToken", access_token, 7000);
} else {
memcacheManager.add("AD_ComponentAccessToken", access_token, 7000);
}
return access_token;
} else {
logger.error("获取第三方平台Component_access_token出错!...");
return "";
}
}
/**
* 公共方法-获取微信AccessToken
*
* @param appid
* @param secret
* @return
*/
public String GetAccessToken(String appid, String secret, Boolean refresh) {
AccountDTO account = accountService.GetAccountInfoByAppid(appid);
// 如果是扫描授权的公众号,没有Appsecret
if (account != null && (account.getAppsecret() == null || account.getAppsecret().length() == 0)) {
return GetAuthorizerAccessToken(appid, refresh);
}
return GetAccessToken0(appid, secret, refresh);
}
/**
* 手工添加的公众号获取token
*
* @param appid
* @param secret
* @param refresh
* @return
*/
public String GetAccessToken0(String appid, String secret, Boolean refresh) {
String accesstoken =
没有合适的资源?快使用搜索试试~ 我知道了~
人事管理系统里的人事信息同步到企业微信通信录
共943个文件
class:465个
java:291个
jar:58个
需积分: 50 27 下载量 42 浏览量
2019-07-10
10:39:49
上传
评论
收藏 37.67MB RAR 举报
温馨提示
java 版人事管理系统里的人事信息同步到企业微信通信录
资源推荐
资源详情
资源评论
收起资源包目录
人事管理系统里的人事信息同步到企业微信通信录 (943个子文件)
WeiXinClient.class 51KB
WeiXinClient.class 51KB
FansApi.class 36KB
FansApi.class 36KB
Messageinfo.class 27KB
Messageinfo.class 27KB
AccountInfo.class 27KB
AccountInfo.class 27KB
Api.class 26KB
Api.class 26KB
FirstImport.class 24KB
FirstImport.class 24KB
SyncKaYangOrgan.class 19KB
SyncKaYangOrgan.class 19KB
Adinfo.class 18KB
Adinfo.class 18KB
User.class 18KB
User.class 18KB
SyncKaYangEmployee.class 18KB
SyncKaYangEmployee.class 18KB
TestMain.class 13KB
TestMain.class 13KB
AdinfoExtendDTO.class 11KB
HttpUtil.class 11KB
Advertiser.class 10KB
Advertiser.class 10KB
AdinfoDTO.class 9KB
MemcacheManager.class 9KB
MemcacheManager.class 9KB
BatchSendFans.class 9KB
BatchSendFans.class 9KB
AdvertiserDTO.class 8KB
Advertisercharge.class 8KB
Advertisercharge.class 8KB
FansTagInfo.class 8KB
FansTagInfo.class 8KB
SysLog.class 8KB
SysLog.class 8KB
ArticleDetailsVO.class 8KB
Details.class 7KB
CommonUtil.class 7KB
WXBizMsgCryptTest.class 7KB
WXBizMsgCryptTest.class 7KB
AdEchartDTO.class 7KB
MailOperation.class 6KB
MailOperation.class 6KB
LoanVO.class 6KB
LoanVO.class 6KB
EmployeeServiceImpl.class 6KB
EmployeeServiceImpl.class 6KB
WXBizMsgCrypt.class 6KB
WXBizMsgCrypt.class 6KB
ConfigManager.class 6KB
ConfigManager.class 6KB
Employee.class 6KB
GetUserDetail.class 6KB
GetUserDetail.class 6KB
Login.class 6KB
Login.class 6KB
FansInfoDTO.class 6KB
DepartmentServiceImpl.class 6KB
DepartmentServiceImpl.class 6KB
FileUploadUtil.class 6KB
FileUploadUtil.class 6KB
SendlistDTO.class 6KB
KayangEmployee.class 5KB
BatchDeleteTagToWeiXin.class 5KB
BatchDeleteTagToWeiXin.class 5KB
ApiSearchInfoDTO.class 5KB
UserDetail.class 5KB
MessageinfoDTO.class 5KB
ImageHunter.class 5KB
ImageHunter.class 5KB
GetKaYangEmployee.class 5KB
GetKaYangEmployee.class 5KB
BatchSetAccessTokenToCache.class 5KB
BatchSetAccessTokenToCache.class 5KB
AdanalyseExtendDTO.class 5KB
AdverAdEchartDTO.class 5KB
GetDepartmentUser.class 5KB
GetDepartmentUser.class 5KB
DateUtils.class 5KB
GetKaYangORG.class 5KB
GetKaYangORG.class 5KB
RelationshipServiceImpl.class 5KB
RelationshipServiceImpl.class 5KB
BinaryUploader.class 5KB
BinaryUploader.class 5KB
UserDTO.class 5KB
GetKaYangRelationShip.class 5KB
GetKaYangRelationShip.class 5KB
GetKaYangStation.class 4KB
GetKaYangStation.class 4KB
SyncWXTagToLocal.class 4KB
SyncWXTagToLocal.class 4KB
StorageManager.class 4KB
StorageManager.class 4KB
Notice.class 4KB
Notice.class 4KB
Department.class 4KB
共 943 条
- 1
- 2
- 3
- 4
- 5
- 6
- 10
资源评论
huayang912
- 粉丝: 9
- 资源: 79
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功