package cc.mrbird.febs.common.utils; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.XmlUtil; import cn.hutool.crypto.SecureUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.aliyun.dysmsapi20170525.models.SendSmsResponse; import lombok.extern.slf4j.Slf4j; import com.aliyun.tea.*; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * @author wzy * @date 2021-03-25 **/ @Slf4j public class ZzSmsSend { public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception { com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config() // 您的 AccessKey ID .setAccessKeyId(accessKeyId) // 您的 AccessKey Secret .setAccessKeySecret(accessKeySecret); // 访问的域名 config.endpoint = "dysmsapi.aliyuncs.com"; return new com.aliyun.dysmsapi20170525.Client(config); } private static final String SIGNNAME = "汇达农业"; private static final String TEMPLATECODE = "SMS_251041117"; public static boolean sendALiYun(String phone,String TemplateParam){ com.aliyun.dysmsapi20170525.Client client = null; try { client = createClient("LTAI4GBuydqbJ5bTsDP97Lpd", "vbCjQtPxABWjqtUlQfzjlA0qAY96fh"); } catch (Exception e) { e.printStackTrace(); return false; } com.aliyun.dysmsapi20170525.models.SendSmsRequest sendSmsRequest = new com.aliyun.dysmsapi20170525.models.SendSmsRequest() // .setSignName("阿里云短信测试") .setSignName(SIGNNAME) // .setTemplateCode("SMS_154950909") .setTemplateCode(TEMPLATECODE) // .setPhoneNumbers("15274802129") .setPhoneNumbers(phone) // .setTemplateParam("{\"code\":\"1234\"}"); .setTemplateParam("{\"code\":\""+TemplateParam+"\"}"); com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions(); try { // 复制代码运行请自行打印 API 的返回值 SendSmsResponse sendSmsResponse = client.sendSmsWithOptions(sendSmsRequest, runtime); log.info("短信发送:{}", sendSmsResponse); JSONObject jsonObject = JSONUtil.parseObj(sendSmsResponse); System.out.print(jsonObject); if(200 == sendSmsResponse.getStatusCode()) { return true; }else{ return false; } } catch (TeaException error) { // 如有需要,请打印 error com.aliyun.teautil.Common.assertAsString(error.message); } catch (Exception _error) { TeaException error = new TeaException(_error.getMessage(), _error); // 如有需要,请打印 error com.aliyun.teautil.Common.assertAsString(error.message); } return false; } private static final String URL = "http://zzsms365.com/v2sms.aspx?action=send"; private static final String USER_ID = "1654"; private static final String ACCOUNT = "1369815429"; private static final String PWD = "1369815429"; public static boolean sendVerifyCode(String telphone, String code, int time) { String content = "【美澳】您的验证码是{},请在{}分钟内输入,请勿泄露给他人,如非本人操作,请及时修改密码。"; return send(telphone, StrUtil.format(content, code, time)); } private static boolean send(String telphone, String content) { Map data = new HashMap<>(); Long time = System.currentTimeMillis(); data.put("userid", USER_ID); data.put("timestamp", time); data.put("mobile", telphone); String signStr = ACCOUNT + PWD + time; String sign = SecureUtil.md5(signStr); data.put("sign", sign); data.put("content", content); String response = HttpUtil.post(URL, data); log.info("短信发送:{}", response); if ("Success".equals(XmlUtil.xmlToMap(response).get("returnstatus"))) { return true; } else { // throw new GlobalException((String) XmlUtil.xmlToMap(response).get("message")); return false; } } public static void main(String[] args) { // Map data = new HashMap<>(); // Long time = System.currentTimeMillis(); // data.put("userid", USER_ID); // data.put("timestamp", time); // data.put("mobile", "15773002834"); // String signStr = ACCOUNT + PWD + time; // String sign = SecureUtil.md5(signStr); // data.put("sign", sign); // data.put("content", "【HiBit】尊敬的用户,恭喜您于2010-03-25有一笔充值已成功到账,充值数量为10。"); // // String post = HttpUtil.post(URL, data); // System.out.println(post); boolean b = sendALiYun( "15274802129", "123456"); System.out.println(b); } }