SmsService.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. package kd.cosmic.jkjt.common.util;
  2. import kd.cosmic.jkjt.common.util.Result;
  3. import kd.fi.bcm.formplugin.dimension.batchimp.helper.ImportResultEntry;
  4. import org.apache.http.HttpResponse;
  5. import org.apache.http.client.HttpClient;
  6. import org.apache.http.client.entity.UrlEncodedFormEntity;
  7. import org.apache.http.client.methods.HttpPost;
  8. import org.apache.http.impl.client.HttpClients;
  9. import org.apache.http.message.BasicNameValuePair;
  10. import org.apache.http.util.EntityUtils;
  11. import java.util.ArrayList;
  12. import java.util.regex.Matcher;
  13. import java.util.regex.Pattern;
  14. /**
  15. * @author wangqiang
  16. * @create 2022-08-22 17:53
  17. */
  18. public class SmsService {
  19. private final HttpClient httpClient;
  20. private String url = "http://sms.api.ums86.com:8899/sms/Api/Send.do";
  21. private String spCode = "243649";
  22. private String loginName = "jx_jr";
  23. private String password = "jxjkyxt8638";
  24. public SmsService() {
  25. this.httpClient = HttpClients.createDefault();
  26. }
  27. public Result sendSMS(String smsId, String number, String msg) {
  28. String filter = filter(msg);
  29. number = number.replace("|", ",");
  30. try {
  31. send(filter, number);
  32. } catch (Exception e) {
  33. return Result.error(500, "发送短信出现异常!");
  34. }
  35. return Result.success();
  36. }
  37. public Result sendSMS(String number, String msg) {
  38. number = number.replace("|", ",");
  39. try {
  40. send("您的验证码为" + msg, number);
  41. } catch (Exception e) {
  42. return Result.error(500, "发送短信出现异常!");
  43. }
  44. return Result.success();
  45. }
  46. public void send(String message, String numbers) throws Exception {
  47. ArrayList parameterList = new ArrayList();
  48. parameterList.add(new BasicNameValuePair("SpCode", this.spCode));
  49. parameterList.add(new BasicNameValuePair("LoginName", this.loginName));
  50. parameterList.add(new BasicNameValuePair("Password", this.password));
  51. parameterList.add(new BasicNameValuePair("MessageContent", message));
  52. parameterList.add(new BasicNameValuePair("UserNumber", numbers));
  53. parameterList.add(new BasicNameValuePair("SerialNumber", String.valueOf(System.currentTimeMillis())));
  54. UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(parameterList, "GBK");
  55. HttpPost httpPost = new HttpPost(this.url);
  56. httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded;charset=gbk");
  57. httpPost.setEntity(urlEncodedFormEntity);
  58. HttpResponse response = this.httpClient.execute(httpPost);
  59. String responseStr = EntityUtils.toString(response.getEntity(), "GBK");
  60. if (response.getStatusLine().getStatusCode() != 200) {
  61. throw new Exception("状态码非200");
  62. }
  63. if (responseStr.charAt(7) != '0')
  64. throw new Exception("短信发送失败," + responseStr);
  65. }
  66. private String filter(String content) {
  67. Pattern compile = Pattern.compile("E-cology短信随机验证码:(?<captcha>.*),请登录后及时修改!");
  68. Matcher matcher = compile.matcher(content);
  69. if (!(matcher.find())) {
  70. return content;
  71. }
  72. String captcha = matcher.group("captcha");
  73. return "您的验证码为" + captcha;
  74. }
  75. public String getUrl() {
  76. return this.url;
  77. }
  78. public void setUrl(String url) {
  79. this.url = url;
  80. }
  81. public String getSpCode() {
  82. return this.spCode;
  83. }
  84. public void setSpCode(String spCode) {
  85. this.spCode = spCode;
  86. }
  87. public String getLoginName() {
  88. return this.loginName;
  89. }
  90. public void setLoginName(String loginName) {
  91. this.loginName = loginName;
  92. }
  93. public String getPassword() {
  94. return this.password;
  95. }
  96. public void setPassword(String password) {
  97. this.password = password;
  98. }
  99. }