| 
					
				 | 
			
			
				@ -1,6 +1,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.jw.sms.service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.tencentcloudapi.common.Credential; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.tencentcloudapi.common.exception.TencentCloudSDKException; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -36,6 +37,8 @@ public class TXYSmsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private StringRedisTemplate redisTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String key = "hz_yxyzh_wx_sms"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String SecretId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String SecretKey; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String signName; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -46,7 +49,6 @@ public class TXYSmsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 初始化接口参数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private void init(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String key = "hz_yxyzh_wx_sms"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(redisTemplate.hasKey(key+ ":SecretId")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SecretId = redisTemplate.opsForValue().get(key + ":SecretId"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SecretKey = redisTemplate.opsForValue().get(key + ":SecretKey"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -56,7 +58,7 @@ public class TXYSmsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyHospitalSysDictDO> dictDOList = sysDictDao.findByDictName("hz_yxyzh_wx_sms"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<WlyyHospitalSysDictDO> dictDOList = sysDictDao.findByDictName(key); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:dictDOList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (wlyyHospitalSysDictDO.getDictCode().equalsIgnoreCase("SecretId")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                SecretId=wlyyHospitalSysDictDO.getDictValue(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -115,4 +117,61 @@ public class TXYSmsService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return "error"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param mobile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param str {"templateCode":"VerificationCode","templateParamArr":["param1","param2","param3"]} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String sendMessageJson(String mobile,String str){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Credential cred = new Credential(SecretId, SecretKey); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject jsonObj = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                jsonObj = JSONObject.parseObject(str); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("字符串转JSONObject报错:"+str); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return "error"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String templateId = redisTemplate.opsForValue().get(key + ":"+jsonObj.getString("templateCode")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray templateParamArr = jsonObj.getJSONArray("templateParamArr"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String[] templateParamSet1 = templateParamArr.toArray(new String[0]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpProfile httpProfile = new HttpProfile(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            httpProfile.setEndpoint("sms.tencentcloudapi.com"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ClientProfile clientProfile = new ClientProfile(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            clientProfile.setHttpProfile(httpProfile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SmsClient client = new SmsClient(cred, "ap-nanjing", clientProfile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SendSmsRequest req = new SendSmsRequest(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String[] phoneNumberSet1 = {"+86"+mobile}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            req.setPhoneNumberSet(phoneNumberSet1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            req.setSmsSdkAppId(smsSdkAppId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            req.setSignName(signName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            req.setTemplateId(templateId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            req.setTemplateParamSet(templateParamSet1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            SendSmsResponse resp = client.SendSms(req); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject json = JSON.parseObject(SendSmsResponse.toJsonString(resp)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String res = json.getJSONArray("SendStatusSet").getJSONObject(0).getString("Code"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(!"Ok".equals(res)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info("腾讯短信发送失败:"+SendSmsResponse.toJsonString(resp)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return res; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (TencentCloudSDKException e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.info("腾讯短信报错:"+e.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return "error"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |