| 
						
						
							
								
							
						
						
					 | 
					@ -9,6 +9,7 @@ import com.epmet.commons.tools.security.dto.TokenDto; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.commons.tools.utils.HttpClientManager; | 
					 | 
					 | 
					import com.epmet.commons.tools.utils.HttpClientManager; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.constant.ModuleConstant; | 
					 | 
					 | 
					import com.epmet.constant.ModuleConstant; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.constant.ThirdApiConstant; | 
					 | 
					 | 
					import com.epmet.constant.ThirdApiConstant; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import com.epmet.constant.ThirdRunTimeInfoConstant; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dao.*; | 
					 | 
					 | 
					import com.epmet.dao.*; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dto.form.*; | 
					 | 
					 | 
					import com.epmet.dto.form.*; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.dto.result.AuthorizationInfoResultDTO; | 
					 | 
					 | 
					import com.epmet.dto.result.AuthorizationInfoResultDTO; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -18,11 +19,9 @@ import com.epmet.service.ComponentVerifyTicketService; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.util.WXBizMsgCrypt; | 
					 | 
					 | 
					import com.epmet.util.WXBizMsgCrypt; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.util.WXXmlToMapUtil; | 
					 | 
					 | 
					import com.epmet.util.WXXmlToMapUtil; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.epmet.util.XmlUtil; | 
					 | 
					 | 
					import com.epmet.util.XmlUtil; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.fasterxml.jackson.annotation.JsonIgnore; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import com.github.pagehelper.util.StringUtil; | 
					 | 
					 | 
					import com.github.pagehelper.util.StringUtil; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import lombok.extern.slf4j.Slf4j; | 
					 | 
					 | 
					import lombok.extern.slf4j.Slf4j; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import org.apache.commons.lang3.StringUtils; | 
					 | 
					 | 
					import org.apache.commons.lang3.StringUtils; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import org.springframework.beans.BeanUtils; | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import org.springframework.beans.factory.annotation.Autowired; | 
					 | 
					 | 
					import org.springframework.beans.factory.annotation.Autowired; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import org.springframework.stereotype.Service; | 
					 | 
					 | 
					import org.springframework.stereotype.Service; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import org.springframework.transaction.annotation.Transactional; | 
					 | 
					 | 
					import org.springframework.transaction.annotation.Transactional; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -35,6 +34,7 @@ import java.lang.reflect.Field; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import java.util.*; | 
					 | 
					 | 
					import java.util.*; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					import static com.epmet.constant.ThirdPlatformConstant.*; | 
					 | 
					 | 
					import static com.epmet.constant.ThirdPlatformConstant.*; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					import static com.epmet.constant.ThirdRunTimeInfoConstant.*; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					/** | 
					 | 
					 | 
					/** | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 * @Author zxc | 
					 | 
					 | 
					 * @Author zxc | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -71,24 +71,24 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Transactional(rollbackFor = Exception.class) | 
					 | 
					 | 
					    @Transactional(rollbackFor = Exception.class) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Override | 
					 | 
					 | 
					    @Override | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    public String componentVerifyTicket(HttpServletRequest request, HttpServletResponse response) { | 
					 | 
					 | 
					    public String componentVerifyTicket(HttpServletRequest request, HttpServletResponse response) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        log.info(ModuleConstant.START_RECEIVE); | 
					 | 
					 | 
					        log.info(ThirdRunTimeInfoConstant.START_RECEIVE); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        try { | 
					 | 
					 | 
					        try { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            request.setCharacterEncoding("UTF-8"); | 
					 | 
					 | 
					            request.setCharacterEncoding(ModuleConstant.UTF8); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					            response.setCharacterEncoding("UTF-8"); | 
					 | 
					 | 
					            response.setCharacterEncoding(ModuleConstant.UTF8); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            // 微信加密签名
 | 
					 | 
					 | 
					            // 微信加密签名
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            String msgSignature = request.getParameter("msg_signature"); | 
					 | 
					 | 
					            String msgSignature = request.getParameter(ModuleConstant.MSG_SIGNATURE); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            // 时间戳
 | 
					 | 
					 | 
					            // 时间戳
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            String timeStamp = request.getParameter("timestamp"); | 
					 | 
					 | 
					            String timeStamp = request.getParameter(ModuleConstant.TIMESTAMP); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            // 随机数
 | 
					 | 
					 | 
					            // 随机数
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            String nonce = request.getParameter("nonce"); | 
					 | 
					 | 
					            String nonce = request.getParameter(ModuleConstant.NONCE); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            // 从请求中读取整个post数据
 | 
					 | 
					 | 
					            // 从请求中读取整个post数据
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            InputStream inputStream; | 
					 | 
					 | 
					            InputStream inputStream; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            String postData = null; | 
					 | 
					 | 
					            String postData = null; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            inputStream = request.getInputStream(); | 
					 | 
					 | 
					            inputStream = request.getInputStream(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            postData= IOUtils.toString(inputStream, "UTF-8"); | 
					 | 
					 | 
					            postData= IOUtils.toString(inputStream,ModuleConstant.UTF8); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            //从XML中获取<Encrypt></Encrypt>标签内的密文文本
 | 
					 | 
					 | 
					            //从XML中获取<Encrypt></Encrypt>标签内的密文文本
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            String encrypt = XmlUtil.toXml(postData); | 
					 | 
					 | 
					            String encrypt = XmlUtil.toXml(postData); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            log.info("Encrypt:"+encrypt); | 
					 | 
					 | 
					            log.info(String.format(ThirdRunTimeInfoConstant.ENCRYPT,encrypt)); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            //格式化密文文本,否则没有<ToUserName>标签,会解密失败,参考官方的加解密代码JAVA版本
 | 
					 | 
					 | 
					            //格式化密文文本,否则没有<ToUserName>标签,会解密失败,参考官方的加解密代码JAVA版本
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            String format = "<xml><ToUserName><![CDATA[toUser]]></ToUserName><Encrypt><![CDATA[%1$s]]></Encrypt></xml>"; | 
					 | 
					 | 
					            String format = "<xml><ToUserName><![CDATA[toUser]]></ToUserName><Encrypt><![CDATA[%1$s]]></Encrypt></xml>"; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            String fromXML = String.format(format, encrypt); | 
					 | 
					 | 
					            String fromXML = String.format(format, encrypt); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -102,14 +102,14 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                // 解密消息
 | 
					 | 
					 | 
					                // 解密消息
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                msg = wxcpt.decryptMsg(msgSignature, timeStamp, nonce, fromXML); | 
					 | 
					 | 
					                msg = wxcpt.decryptMsg(msgSignature, timeStamp, nonce, fromXML); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            log.info("msg:"+msg); | 
					 | 
					 | 
					            log.info(String.format(ThirdRunTimeInfoConstant.MSG,msg)); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            // 将xml转为map
 | 
					 | 
					 | 
					            // 将xml转为map
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            Map<String, String> result = WXXmlToMapUtil.xmlToMap(msg); | 
					 | 
					 | 
					            Map<String, String> result = WXXmlToMapUtil.xmlToMap(msg); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            String infotype = result.get("InfoType");  //获取infotype,注:微信开放平台文档中标明固定为:"component_verify_ticket",但参考其他代码,还包含authorized???
 | 
					 | 
					 | 
					            String infotype = result.get(ModuleConstant.INFO_TYPE);  //获取infotype,注:微信开放平台文档中标明固定为:"component_verify_ticket",但参考其他代码,还包含authorized???
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            log.info(infotype); | 
					 | 
					 | 
					            log.info(infotype); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            switch (infotype){ | 
					 | 
					 | 
					            switch (infotype){ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                case "component_verify_ticket":   //验证票据
 | 
					 | 
					 | 
					                case ModuleConstant.TICKET_UNDERLINE_KEY:   //验证票据
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    String ComponentVerifyTicket = result.get("ComponentVerifyTicket"); | 
					 | 
					 | 
					                    String ComponentVerifyTicket = result.get(ModuleConstant.TICKET_KEY); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                    // 缓存 ticket
 | 
					 | 
					 | 
					                    // 缓存 ticket
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    redisThird.setComponentVerifyTicket(ComponentVerifyTicket); | 
					 | 
					 | 
					                    redisThird.setComponentVerifyTicket(ComponentVerifyTicket); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    // 存数据库
 | 
					 | 
					 | 
					                    // 存数据库
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -117,17 +117,17 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    ticketFormDTO.setAppid(PLATFORM_APP_ID); | 
					 | 
					 | 
					                    ticketFormDTO.setAppid(PLATFORM_APP_ID); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    ticketFormDTO.setComponentVerifyTicket(ComponentVerifyTicket); | 
					 | 
					 | 
					                    ticketFormDTO.setComponentVerifyTicket(ComponentVerifyTicket); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                    ticketDao.insertComponentVerifyTicket(ticketFormDTO); | 
					 | 
					 | 
					                    ticketDao.insertComponentVerifyTicket(ticketFormDTO); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    log.info("component_verify_ticket:"+ComponentVerifyTicket); | 
					 | 
					 | 
					                    log.info(ModuleConstant.TICKET_UNDERLINE_KEY+":"+ComponentVerifyTicket); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					                    break; | 
					 | 
					 | 
					                    break; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                case "unauthorized"://用户取消授权
 | 
					 | 
					 | 
					                case ModuleConstant.UNAUTHORIZED://用户取消授权
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    return ""; | 
					 | 
					 | 
					                    return ModuleConstant.NULL_CHAR; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } catch (Exception e) { | 
					 | 
					 | 
					        } catch (Exception e) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            log.error(e.getMessage()); | 
					 | 
					 | 
					            log.error(e.getMessage()); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            return ""; | 
					 | 
					 | 
					            return ModuleConstant.NULL_CHAR; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        log.info(ModuleConstant.END_TICKET); | 
					 | 
					 | 
					        log.info(ThirdRunTimeInfoConstant.END_TICKET); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        return "success"; | 
					 | 
					 | 
					        return ModuleConstant.SUCCESS; | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    /** | 
					 | 
					 | 
					    /** | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -138,7 +138,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Transactional(rollbackFor = Exception.class) | 
					 | 
					 | 
					    @Transactional(rollbackFor = Exception.class) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Override | 
					 | 
					 | 
					    @Override | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    public void getComponentAccessToken() { | 
					 | 
					 | 
					    public void getComponentAccessToken() { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        log.info("====================开始执行定时任务获取令牌【component_access_token】===================="); | 
					 | 
					 | 
					        log.info(ThirdRunTimeInfoConstant.START_GET_COMPONENT_ACCESS_TOKEN); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        Map<String, String> reMap; | 
					 | 
					 | 
					        Map<String, String> reMap; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        try { | 
					 | 
					 | 
					        try { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            // 核心定时器
 | 
					 | 
					 | 
					            // 核心定时器
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -157,17 +157,18 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                formDTO.setComponentAccessToken(componentAccessToken); | 
					 | 
					 | 
					                formDTO.setComponentAccessToken(componentAccessToken); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                formDTO.setExpiresIn(Integer.valueOf(expiresIn)); | 
					 | 
					 | 
					                formDTO.setExpiresIn(Integer.valueOf(expiresIn)); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                //先逻辑删,在插入
 | 
					 | 
					 | 
					                //先逻辑删,在插入
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					                log.info(ThirdRunTimeInfoConstant.START_DELETE_COMPONENT_ACCESS_TOKEN); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                componentAccessTokenDao.updateOldComponentAccessToken(); | 
					 | 
					 | 
					                componentAccessTokenDao.updateOldComponentAccessToken(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                componentAccessTokenDao.insertComponentAccessToken(formDTO); | 
					 | 
					 | 
					                componentAccessTokenDao.insertComponentAccessToken(formDTO); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                //存缓存
 | 
					 | 
					 | 
					                //存缓存
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                redisThird.setComponentAccessToken(componentAccessToken); | 
					 | 
					 | 
					                redisThird.setComponentAccessToken(componentAccessToken); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } else { | 
					 | 
					 | 
					            } else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                throw new RenException(ModuleConstant.FAILURE_ACCESS_TOKEN); | 
					 | 
					 | 
					                throw new RenException(ThirdRunTimeInfoConstant.FAILURE_ACCESS_TOKEN); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } catch (Exception e) { | 
					 | 
					 | 
					        } catch (Exception e) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            e.printStackTrace(); | 
					 | 
					 | 
					            e.printStackTrace(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        log.info(ModuleConstant.SUCCESS_ACCESS_TOKEN); | 
					 | 
					 | 
					        log.info(ThirdRunTimeInfoConstant.SUCCESS_ACCESS_TOKEN); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    /** | 
					 | 
					 | 
					    /** | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -178,13 +179,13 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Transactional(rollbackFor = Exception.class) | 
					 | 
					 | 
					    @Transactional(rollbackFor = Exception.class) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Override | 
					 | 
					 | 
					    @Override | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    public void preAuthCode() { | 
					 | 
					 | 
					    public void preAuthCode() { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        log.info("====================开始执行定时任务获取预授权码【pre_auth_code】===================="); | 
					 | 
					 | 
					        log.info(START_GET_PRE_AUTH_CODE); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        try { | 
					 | 
					 | 
					        try { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            String accessToken = redisThird.getComponentAccessToken(ModuleConstant.COMPONENT_ACCESS_TOKEN); | 
					 | 
					 | 
					            String accessToken = redisThird.getComponentAccessToken(ModuleConstant.COMPONENT_ACCESS_TOKEN); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            JSONObject jsonObject = new JSONObject(); | 
					 | 
					 | 
					            JSONObject jsonObject = new JSONObject(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            jsonObject.put(ModuleConstant.COMPONENT_APPID, PLATFORM_APP_ID); | 
					 | 
					 | 
					            jsonObject.put(ModuleConstant.COMPONENT_APPID, PLATFORM_APP_ID); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            String post = HttpClientManager.getInstance().sendPostByJSON(ThirdApiConstant.API_CREATE_PREAUTHCODE_URL + accessToken, JSON.toJSONString(jsonObject)).getData(); | 
					 | 
					 | 
					            String post = HttpClientManager.getInstance().sendPostByJSON(ThirdApiConstant.API_CREATE_PREAUTHCODE_URL + accessToken, JSON.toJSONString(jsonObject)).getData(); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            log.info("====================返回post结果:" + post); | 
					 | 
					 | 
					            log.info(String.format(POST_RESULT,post)); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            HashMap<String, String> hashMap = JSON.parseObject(post, HashMap.class); | 
					 | 
					 | 
					            HashMap<String, String> hashMap = JSON.parseObject(post, HashMap.class); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            String preAuthCode = hashMap.get(ModuleConstant.PRE_AUTH_CODE); | 
					 | 
					 | 
					            String preAuthCode = hashMap.get(ModuleConstant.PRE_AUTH_CODE); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            String expiresIn = hashMap.get(ModuleConstant.EXPIRES_IN); | 
					 | 
					 | 
					            String expiresIn = hashMap.get(ModuleConstant.EXPIRES_IN); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -200,12 +201,12 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                //预授权码 放入缓存
 | 
					 | 
					 | 
					                //预授权码 放入缓存
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                redisThird.setPreAuthCode(preAuthCode,ex); | 
					 | 
					 | 
					                redisThird.setPreAuthCode(preAuthCode,ex); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            } else { | 
					 | 
					 | 
					            } else { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                throw new RuntimeException("微信开放平台,第三方平台获取【预授权码】失败"); | 
					 | 
					 | 
					                throw new RuntimeException(FAILURE_GET_PRE_AUTH_CODE); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            } | 
					 | 
					 | 
					            } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } catch (Exception e) { | 
					 | 
					 | 
					        } catch (Exception e) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            e.printStackTrace(); | 
					 | 
					 | 
					            e.printStackTrace(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        log.info("====================结束执行定时任务获取预授权码【pre_auth_code】===================="); | 
					 | 
					 | 
					        log.info(END_GET_PRE_AUTH_CODE); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    /** | 
					 | 
					 | 
					    /** | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -214,6 +215,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					     */ | 
					 | 
					 | 
					     */ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @Transactional(rollbackFor = Exception.class) | 
					 | 
					 | 
					    @Transactional(rollbackFor = Exception.class) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    public AuthorizationInfoResultDTO authInfoByAuthCode(String authCode,String authAppId,String customerId) { | 
					 | 
					 | 
					    public AuthorizationInfoResultDTO authInfoByAuthCode(String authCode,String authAppId,String customerId) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        log.info(START_GET_AUTH_INFO); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        AuthorizationInfoResultDTO authorizationInfoResultDTO = new AuthorizationInfoResultDTO(); | 
					 | 
					 | 
					        AuthorizationInfoResultDTO authorizationInfoResultDTO = new AuthorizationInfoResultDTO(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        // 获取令牌【component_access_token】
 | 
					 | 
					 | 
					        // 获取令牌【component_access_token】
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        String accessToken = redisThird.getComponentAccessToken(ModuleConstant.COMPONENT_ACCESS_TOKEN); | 
					 | 
					 | 
					        String accessToken = redisThird.getComponentAccessToken(ModuleConstant.COMPONENT_ACCESS_TOKEN); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -247,6 +249,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        refreshAuthorizerAccessTokenDao.updateOldAuthorizerAccessToken(customerId); | 
					 | 
					 | 
					        refreshAuthorizerAccessTokenDao.updateOldAuthorizerAccessToken(customerId); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        refreshAuthorizerAccessTokenDao.insertAuthorizerAccessToken(refreshAccessToken); | 
					 | 
					 | 
					        refreshAuthorizerAccessTokenDao.insertAuthorizerAccessToken(refreshAccessToken); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        // 2. 权限列表
 | 
					 | 
					 | 
					        // 2. 权限列表
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        log.info(START_INSERT_FUNC_INFO); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        List<FuncInfoFormDTO> funcInfos = new ArrayList<>(); | 
					 | 
					 | 
					        List<FuncInfoFormDTO> funcInfos = new ArrayList<>(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        List<Map> func_info = authorizationInfoResultDTO.getFunc_info(); | 
					 | 
					 | 
					        List<Map> func_info = authorizationInfoResultDTO.getFunc_info(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        for (Map map1 : func_info) { | 
					 | 
					 | 
					        for (Map map1 : func_info) { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					@ -268,6 +271,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        redisThird.setAuthInfo(authorizationInfoResultDTO); | 
					 | 
					 | 
					        redisThird.setAuthInfo(authorizationInfoResultDTO); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        //authorizer_refresh_token 放入缓存
 | 
					 | 
					 | 
					        //authorizer_refresh_token 放入缓存
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        redisThird.setAuthorizerRefreshToken(refreshAccessToken); | 
					 | 
					 | 
					        redisThird.setAuthorizerRefreshToken(refreshAccessToken); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        log.info(END_GET_AUTH_INFO); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return authorizationInfoResultDTO; | 
					 | 
					 | 
					        return authorizationInfoResultDTO; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    } | 
					 | 
					 | 
					    } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -323,13 +327,13 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        String userId = tokenDto.getUserId(); | 
					 | 
					 | 
					        String userId = tokenDto.getUserId(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        String customerId = paCustomerAgencyDao.getCustomerIdByUserId(userId); | 
					 | 
					 | 
					        String customerId = paCustomerAgencyDao.getCustomerIdByUserId(userId); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        try { | 
					 | 
					 | 
					        try { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            request.setCharacterEncoding("UTF-8"); | 
					 | 
					 | 
					            request.setCharacterEncoding(ModuleConstant.UTF8); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        } catch (UnsupportedEncodingException e) { | 
					 | 
					 | 
					        } catch (UnsupportedEncodingException e) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            e.printStackTrace(); | 
					 | 
					 | 
					            e.printStackTrace(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        response.setCharacterEncoding("UTF-8"); | 
					 | 
					 | 
					        response.setCharacterEncoding(ModuleConstant.UTF8); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        String authCode = request.getParameter("auth_code"); | 
					 | 
					 | 
					        String authCode = request.getParameter(ModuleConstant.AUTH_CODE); | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        String expiresIn = request.getParameter("expires_in"); | 
					 | 
					 | 
					        String expiresIn = request.getParameter(ModuleConstant.EXPIRES_IN); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        //authCode存数据库
 | 
					 | 
					 | 
					        //authCode存数据库
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        AuthCodeFormDTO formDTO = new AuthCodeFormDTO(); | 
					 | 
					 | 
					        AuthCodeFormDTO formDTO = new AuthCodeFormDTO(); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        formDTO.setAuthCode(authCode); | 
					 | 
					 | 
					        formDTO.setAuthCode(authCode); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |