| 
					
				 | 
			
			
				@ -1,8 +1,8 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.patient.endpoint.wechat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.sun.net.httpserver.Authenticator; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.wx.JsApiTicket; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.wx.WxWechatDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.hospital.prescription.service.entrance.EntranceService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.Envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.ObjEnvelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -50,9 +50,10 @@ public class WechatInfoEndPoint extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String wxId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private StringRedisTemplate redisTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WxUrlConfigService wxUrlConfigService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private EntranceService entranceService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @RequestMapping(value =  PatientRequestMapping.Wechat.getWxWechatConfig, method = RequestMethod.GET) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -120,9 +121,18 @@ public class WechatInfoEndPoint extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getJsapi_ticketByToken(String wxId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            WxWechatDO wxWechat = wxAccessTokenService.getWxInfo(wxId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Iterable<JsApiTicket> jsapiTickets = wxAccessTokenService.findJsapiTicket(wxWechat.getAppOriginId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Iterable<JsApiTicket> jsapiTickets = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            WxWechatDO wxWechat = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //中山医院互联网医院 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if("xm_zsyy_wx".equals(wxId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jsapiTickets = wxAccessTokenService.findJsapiTicket(wxId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                wxWechat = wxAccessTokenService.getWxInfo(wxId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jsapiTickets = wxAccessTokenService.findJsapiTicket(wxWechat.getAppOriginId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (jsapiTickets != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (JsApiTicket jsApiTicket : jsapiTickets) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if ((System.currentTimeMillis() - jsApiTicket.getAdd_timestamp()) < (jsApiTicket.getExpires_in() * 1000)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -133,7 +143,15 @@ public class WechatInfoEndPoint extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String token = wxAccessTokenService.getWxAccessTokenById(wxId).getAccessToken(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String token = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //中山医院互联网医院 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if("xm_zsyy_wx".equals(wxId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                token = entranceService.getAccessToken("100033"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                token = wxAccessTokenService.getWxAccessTokenById(wxId).getAccessToken(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (token != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String token_url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String params = "access_token=" + token + "&type=jsapi"; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -145,8 +163,12 @@ public class WechatInfoEndPoint extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    JsApiTicket newJsApiTicket = new JsApiTicket(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    newJsApiTicket.setJsapi_ticket(ticket); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    newJsApiTicket.setExpires_in(Long.parseLong(expires_in)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    newJsApiTicket.setAcc_id(wxWechat.getAppOriginId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    newJsApiTicket.setAcc_id(wxWechat.getAppOriginId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    if("xm_zsyy_wx".equals(wxId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        newJsApiTicket.setAcc_id(wxId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        newJsApiTicket.setAcc_id(wxWechat.getAppOriginId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    wxAccessTokenService.addJsapiTicket(newJsApiTicket); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    return ticket; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 |