package kd.cosmic.jkjt.common.util; import kd.cosmic.jkjt.common.util.Result; import kd.fi.bcm.formplugin.dimension.batchimp.helper.ImportResultEntry; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.HttpClients; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @author wangqiang * @create 2022-08-22 17:53 */ public class SmsService { private final HttpClient httpClient; private String url = "http://sms.api.ums86.com:8899/sms/Api/Send.do"; private String spCode = "243649"; private String loginName = "jx_jr"; private String password = "jxjkyxt8638"; public SmsService() { this.httpClient = HttpClients.createDefault(); } public Result sendSMS(String smsId, String number, String msg) { String filter = filter(msg); number = number.replace("|", ","); try { send(filter, number); } catch (Exception e) { return Result.error(500, "发送短信出现异常!"); } return Result.success(); } public Result sendSMS(String number, String msg) { number = number.replace("|", ","); try { send("您的验证码为" + msg, number); } catch (Exception e) { return Result.error(500, "发送短信出现异常!"); } return Result.success(); } public void send(String message, String numbers) throws Exception { ArrayList parameterList = new ArrayList(); parameterList.add(new BasicNameValuePair("SpCode", this.spCode)); parameterList.add(new BasicNameValuePair("LoginName", this.loginName)); parameterList.add(new BasicNameValuePair("Password", this.password)); parameterList.add(new BasicNameValuePair("MessageContent", message)); parameterList.add(new BasicNameValuePair("UserNumber", numbers)); parameterList.add(new BasicNameValuePair("SerialNumber", String.valueOf(System.currentTimeMillis()))); UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(parameterList, "GBK"); HttpPost httpPost = new HttpPost(this.url); httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=gbk"); httpPost.setEntity(urlEncodedFormEntity); HttpResponse response = this.httpClient.execute(httpPost); String responseStr = EntityUtils.toString(response.getEntity(), "GBK"); if (response.getStatusLine().getStatusCode() != 200) { throw new Exception("状态码非200"); } if (responseStr.charAt(7) != '0') throw new Exception("短信发送失败," + responseStr); } private String filter(String content) { Pattern compile = Pattern.compile("E-cology短信随机验证码:(?.*),请登录后及时修改!"); Matcher matcher = compile.matcher(content); if (!(matcher.find())) { return content; } String captcha = matcher.group("captcha"); return "您的验证码为" + captcha; } public String getUrl() { return this.url; } public void setUrl(String url) { this.url = url; } public String getSpCode() { return this.spCode; } public void setSpCode(String spCode) { this.spCode = spCode; } public String getLoginName() { return this.loginName; } public void setLoginName(String loginName) { this.loginName = loginName; } public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } }