package com.chinacreator.videoalliance.smc.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.chinacreator.common.exception.BusinessException; import com.chinacreator.common.util.DESUtil; import com.chinacreator.videoalliance.common.dao.DictionaryDao; import com.chinacreator.videoalliance.order.util.URLUtil; import org.jboss.logging.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; @Component public class SendSmsUtil { public static Logger logger = Logger.getLogger(SendSmsUtil.class); public static SendSmsUtil sendSmsUtil; public static final String urlbase = "https://cctv2.mige.tv/smsbusi/sms/send"; @Autowired private DictionaryDao dictionaryDao; @PostConstruct public void init(){ System.out.println("PostConstruct接口的innit()执行"); sendSmsUtil =this; sendSmsUtil.dictionaryDao = this.dictionaryDao; } public static String send(String userid,String content) throws Exception { if(sendSmsUtil.dictionaryDao==null){ throw new BusinessException("500","dictionaryDao空指针"); } String url = sendSmsUtil.dictionaryDao.getValue("newSmsSendUrl"); if(url==null || "".equals(url)){ throw new BusinessException("404","数据库中获取的url为null"); } System.out.println("newSmsSendUrl对应的url是:"+url); String smsid = "10655117"; String pwd = "wo6bslq2"; userid = DESUtil.encode(userid,pwd); System.out.println(userid); String timestamp = System.currentTimeMillis()/1000+""; String sign = SHAUtil.shaEncode(smsid+userid+timestamp+content+pwd).toLowerCase(); userid = URLEncoder.encode(userid,"utf-8"); content = URLEncoder.encode(content,"utf-8"); //String url = "http://111.206.133.54/smsbusi/sms/send?smsid="+smsid+"&userid="+userid+"×tamp="+timestamp+"&sign="+sign+"&content="+content; // String url = "http://cctv2.mige.tv/smsbusi/sms/send?smsid="+smsid+"&userid="+userid+"×tamp="+timestamp+"&sign="+sign+"&content="+content; // url = url+"/smsbusi/sms/send?smsid="+smsid+"&userid="+userid+"×tamp="+timestamp+"&sign="+sign+"&content="+content; url = url+"?smsid="+smsid+"&userid="+userid+"×tamp="+timestamp+"&sign="+sign+"&content="+content; System.out.println("url是"+url); String result = ""; try { result = URLUtil.get(url); } catch (Exception e) { e.printStackTrace(); } if(result!="" && result!=null){ JSONObject obj = JSON.parseObject(result); String resultcode = obj.getString("resultcode"); System.out.println(resultcode); return resultcode; } System.out.println(result); return null; } public static String send(String userid,long code) throws Exception { logger.info(">>>>>>>>>>>>>>>>>>>>>>>短信验证码走模板"); String dbUrl = ""; String nurl = ""; try { //从数据字典表中查询地址,结果为:https://cctv2.mige.tv/smsbusi/sms/send dbUrl = sendSmsUtil.dictionaryDao.getValue("newSmsSendUrl"); System.out.println("newSmsSendUrl对应的url是:" + dbUrl); } catch (Exception e) { logger.error("smsUtil、dictionaryDao、url存在空指针问题,使用静态地址"); e.printStackTrace(); } finally { if (dbUrl == null || "".equals(dbUrl)) { nurl = urlbase; System.out.println("500" + "::smsUtil、dictionaryDao、url存在空指针问题,使用静态地址"); logger.info("使用静态地址发短信,地址是:"+nurl); } else { nurl = dbUrl; logger.info("发短信,地址是>>>>>>>>>>>>>>>>>:"+nurl); } } // String smsid = "10655117";//旧 // String pwd = "wo6bslq2"; //10655117 String smsid = "2022041516441";//2022041516441 String pwd = "!qwcpbl@"; // userid = DESUtil.encode(userid,pwd); System.out.println(userid); String timestamp = System.currentTimeMillis()/1000+""; Map map=new HashMap(); map.put("vcode",code); String vars= JSONObject.toJSONString(map); String contentid = "202204151711164419"; String sign = SHAUtil.shaEncode(smsid+userid+timestamp+vars+contentid+pwd).toLowerCase(); userid = URLEncoder.encode(userid,"utf-8"); vars = URLEncoder.encode(vars,"utf-8"); String url = nurl+"?smsid="+smsid+"&userid="+userid+"×tamp="+timestamp+"&sign="+sign+"&vars="+vars+"&contentid="+contentid; String result = ""; try { result = URLUtil.get(url); logger.info("result是:"+result); } catch (Exception e) { e.printStackTrace(); } if(result!="" && result!=null){ JSONObject obj = JSON.parseObject(result); String resultcode = obj.getString("resultcode"); System.out.println(resultcode); return resultcode; } System.out.println(result); return null; } public static void main(String args[]) throws Exception { // SendSmsUtil s = new SendSmsUtil(); try { SendSmsUtil.send("15581368293",9999999); } catch (Exception e) { e.printStackTrace(); } // System.out.println("123"); // Object result = URLUtil.get("http://111.206.133.54/smsbusi/sms/send?smsid=10655117&userid=TxyXhnLm1vfHKMMyMtvycg%3D%3D×tamp=1583916754&sign=10908a56107fa3479a7225f39d7b66ae0fef5a6a&content=这是一条测试短信"); // System.out.println(result); // String userid = "15581368293"; // String content = "测试测试"; //// String str = DESUtil.encode("15623055682","hjk!@#qw"); // String str = DESUtil.encode("15581368293", "hjk!@#qw"); // System.out.println(str); // // String smsid = "855472781058375680"; // String pwd = "acvb!@qw"; // userid = DESUtil.encode(userid, pwd); // System.out.println(userid); // String timestamp = System.currentTimeMillis() / 1000 + ""; // String sign = SHAUtil.shaEncode(smsid + userid + timestamp + content + pwd).toLowerCase(); // userid = URLEncoder.encode(userid, "utf-8"); // content = URLEncoder.encode(content, "utf-8"); // // String url1 = "http://111.206.133.54/smsbusi/sms/send"; // //String url = "http://111.206.133.54/smsbusi/sms/send?smsid="+smsid+"&userid="+userid+"×tamp="+timestamp+"&sign="+sign+"&content="+content; // String url = url1 + "?smsid=" + smsid + "&userid=" + userid + "×tamp=" + timestamp + "&sign=" + sign + "&content=" + content; // System.out.println(url); // } } }