package com.moral.monitor.listener.message; import com.taobao.api.ApiException; import com.taobao.api.DefaultTaobaoClient; import com.taobao.api.TaobaoClient; import com.taobao.api.domain.BizResult; import com.taobao.api.request.AlibabaAliqinFcSmsNumSendRequest; import com.taobao.api.response.AlibabaAliqinFcSmsNumSendResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Date; /** * Created by a on 2017/3/13. */ public class Sms implements Runnable { private static Logger logger = LoggerFactory.getLogger(Sms.class); private String address; private String level; private String tel; public void run() { try { long ssatime = new Date().getTime(); message(address, level, tel); long esatime = new Date().getTime(); logger.warn(" 短信报警耗时 " + (esatime - ssatime) + "==========" + Thread.currentThread().getName() + "========="); } catch (ApiException e) { e.printStackTrace(); logger.warn("短信报警通知失败 " + e.getMessage()); } } public static void message(String address, String level, String tel) throws ApiException { String url = "http://gw.api.taobao.com/router/rest"; String appkey = "23784380";/* 企业:23784380 非企业:23531128 */ String secret = "c728a49aa9dc5bc7697f028d3c92bab3";/* 企业:c728a49aa9dc5bc7697f028d3c92bab3 非企业:b079269785183c5a7520da9b8047bb42 */ TaobaoClient client = new DefaultTaobaoClient(url, appkey, secret); AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest(); req.setExtend(""); req.setSmsType("normal"); req.setSmsFreeSignName("七星瓢虫");/*七星博士*/ //${address}发生警报,警报等级:${level},请马上处理。 req.setSmsParamString("{address:'" + address + "',level:'" + level + "'}"); req.setRecNum(tel); req.setSmsTemplateCode("SMS_63925645");/* 企业:SMS_63925645 非企: SMS_26240223 */ AlibabaAliqinFcSmsNumSendResponse rsp = client.execute(req); BizResult result = rsp.getResult(); if (result == null) { logger.warn("短信报警通知失败" + rsp.getBody()); return; } Boolean success = result.getSuccess(); if (!success) { logger.warn("短信通知失败" + rsp.getBody()); } } public Sms(String address, String level, String tel) { this.address = address; this.level = level; this.tel = tel; } }