移动云mas 通过HTTP请求发送普通短信和 模板短信

举报
小米粒-biubiubiu 发表于 2020/12/02 23:23:29 2020/12/02
【摘要】  一、短信发送配置 tnar: mobileCloud: sms: url: http://112.35.1.155:1992/sms/norsubmit ecName: 公司名称 apId: 账号 secretKey: 密码 sign: 签名 二、短信发送工具类 package com.tnar.utils; import com.alibaba.fastjso...

 一、短信发送配置


  
  1. tnar:
  2. mobileCloud:
  3. sms:
  4. url: http://112.35.1.155:1992/sms/norsubmit
  5. ecName: 公司名称
  6. apId: 账号
  7. secretKey: 密码
  8. sign: 签名

二、短信发送工具类


  
  1. package com.tnar.utils;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.tnar.dto.request.SendReq;
  5. import com.tnar.dto.request.SendTemplateReq;
  6. import com.tnar.dto.response.SendRes;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.beans.factory.annotation.Value;
  9. import org.springframework.http.HttpEntity;
  10. import org.springframework.http.HttpHeaders;
  11. import org.springframework.http.MediaType;
  12. import org.springframework.stereotype.Component;
  13. import org.springframework.util.DigestUtils;
  14. import org.springframework.web.client.RestTemplate;
  15. import java.io.UnsupportedEncodingException;
  16. import java.util.Base64;
  17. import java.util.List;
  18. /**
  19. * @author dzx
  20. * @ClassName:
  21. * @Description: 移动云mas短信工具类
  22. * @date 2019年05月15日 15:01:21
  23. */
  24. @Component
  25. public class MobileCloudSmsUtil {
  26. @Value("${tnar.mobileCloud.sms.url}")
  27. private String url;
  28. @Value("${tnar.mobileCloud.sms.ecName}")
  29. private String ecName;
  30. @Value("${tnar.mobileCloud.sms.apId}")
  31. private String apId;
  32. @Value("${tnar.mobileCloud.sms.secretKey}")
  33. private String secretKey;
  34. @Value("${tnar.mobileCloud.sms.sign}")
  35. private String sign;
  36. private String addSerial = "";
  37. @Autowired
  38. private RestTemplate restTemplate;
  39. /**
  40. * 发送普通短信
  41. *
  42. * @param mobiles 多个手机号用逗号隔开
  43. * @param content 短信内容
  44. * @return
  45. * @throws UnsupportedEncodingException
  46. */
  47. public SendRes sendOrdinarySms(String mobiles, String content) throws UnsupportedEncodingException {
  48. HttpHeaders httpHeaders = new HttpHeaders();
  49. httpHeaders.setContentType(MediaType.APPLICATION_JSON);
  50. SendReq sendReq = new SendReq();
  51. sendReq.setEcName(ecName).setApId(apId).setSecretKey(secretKey).setMobiles(mobiles).setContent(content).
  52. setSign(sign).setAddSerial(addSerial);
  53. StringBuffer stringBuffer = new StringBuffer();
  54. stringBuffer.append(sendReq.getEcName())
  55. .append(sendReq.getApId())
  56. .append(sendReq.getSecretKey())
  57. .append(sendReq.getMobiles())
  58. .append(sendReq.getContent())
  59. .append(sendReq.getSign())
  60. .append(sendReq.getAddSerial());
  61. sendReq.setMac(DigestUtils.md5DigestAsHex(stringBuffer.toString().getBytes()).toLowerCase());
  62. String jsonText = JSON.toJSONString(sendReq);
  63. String body = Base64.getEncoder().encodeToString(jsonText.getBytes("UTF-8"));
  64. HttpEntity<String> httpEntity = new HttpEntity<String>(body, httpHeaders);
  65. JSONObject result = restTemplate.postForObject(url, httpEntity, JSONObject.class);
  66. return result.toJavaObject(SendRes.class);
  67. }
  68. /**
  69. * 发送模板短信
  70. *
  71. * @param mobiles 手机号
  72. * @param templateId 模板id
  73. * @param params 参数列表
  74. * @return
  75. * @throws UnsupportedEncodingException
  76. */
  77. public SendRes sendTemplateSms(String mobiles, String templateId, List<String> params) throws UnsupportedEncodingException {
  78. HttpHeaders httpHeaders = new HttpHeaders();
  79. httpHeaders.setContentType(MediaType.APPLICATION_JSON);
  80. SendTemplateReq sendTemplateReq = new SendTemplateReq();
  81. sendTemplateReq.setEcName(ecName).setApId(apId).setSecretKey(secretKey).setMobiles(mobiles)
  82. .setSign(sign).setAddSerial(addSerial)
  83. .setTemplateId(templateId)
  84. .setParams(JSON.toJSONString(params.toArray()));
  85. StringBuffer stringBuffer = new StringBuffer();
  86. stringBuffer.append(sendTemplateReq.getEcName())
  87. .append(sendTemplateReq.getApId())
  88. .append(sendTemplateReq.getSecretKey())
  89. .append(sendTemplateReq.getTemplateId())
  90. .append(sendTemplateReq.getMobiles())
  91. .append(sendTemplateReq.getParams())
  92. .append(sendTemplateReq.getSign())
  93. .append(sendTemplateReq.getAddSerial());
  94. sendTemplateReq.setMac(DigestUtils.md5DigestAsHex(stringBuffer.toString().getBytes()).toLowerCase());
  95. String jsonText = JSON.toJSONString(sendTemplateReq);
  96. String body = Base64.getEncoder().encodeToString(jsonText.getBytes("UTF-8"));
  97. HttpEntity<String> httpEntity = new HttpEntity<String>(body, httpHeaders);
  98. JSONObject result = restTemplate.postForObject(url, httpEntity, JSONObject.class);
  99. return result.toJavaObject(SendRes.class);
  100. }
  101. }

 

文章来源: blog.csdn.net,作者:血煞风雨城2018,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_31905135/article/details/90369489

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。