package cc.mrbird.febs.common.utils; import cc.mrbird.febs.common.exception.FebsException; 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.http.HttpUtil; import lombok.extern.slf4j.Slf4j; import java.util.Date; import java.util.HashMap; /** * @author wzy * @date 2020-07-14 **/ @Slf4j public class Sms106Send { private static final String URL = "http://www.qf106.com/sms.aspx"; private static final String ID = "16880"; private static final String ACCOUNT = "ywg"; private static final String PASSWORD = "1!qaz2@wsx"; /** * @param phone 手机号 * @param code 验证码 * @param time 失效时间 * @return */ public static boolean sendVerifyCode(String phone, String code, int time) { String msg = "您的验证码是{},请在{}分钟内输入,请勿泄露给他人,如非本人操作,请及时修改密码。"; String content = StrUtil.format(msg, code, time); return request(phone, content, "验证码"); } private static boolean request(String phone, String content, String tagName) { HashMap param = new HashMap<>(); param.put("userid", ID); param.put("account", ACCOUNT); param.put("password", PASSWORD); param.put("mobile", phone); param.put("content", content); param.put("sendTime", DateUtil.format(new Date(), DatePattern.NORM_DATETIME_PATTERN)); param.put("action", "send"); param.put("checkcontent", 0); param.put("taskName", tagName); param.put("countnumber", 1); param.put("mobilenumber", 1); param.put("telephonenumber", 0); String response = HttpUtil.post(URL, param); log.info("短信发送:{}, {}", tagName, response); if ("Success".equals(XmlUtil.xmlToMap(response).get("returnstatus"))) { return true; } else { throw new FebsException((String) XmlUtil.xmlToMap(response).get("message")); } } public static void main(String[] args) { System.out.println(sendVerifyCode("15274802129", "123456", 2)); } }