移动云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...

 一、短信发送配置


      tnar:
      mobileCloud:
      sms:
      url: http://112.35.1.155:1992/sms/norsubmit
      ecName: 公司名称
      apId: 账号
      secretKey: 密码
      sign: 签名
  
 

二、短信发送工具类


      package com.tnar.utils;
      import com.alibaba.fastjson.JSON;
      import com.alibaba.fastjson.JSONObject;
      import com.tnar.dto.request.SendReq;
      import com.tnar.dto.request.SendTemplateReq;
      import com.tnar.dto.response.SendRes;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.beans.factory.annotation.Value;
      import org.springframework.http.HttpEntity;
      import org.springframework.http.HttpHeaders;
      import org.springframework.http.MediaType;
      import org.springframework.stereotype.Component;
      import org.springframework.util.DigestUtils;
      import org.springframework.web.client.RestTemplate;
      import java.io.UnsupportedEncodingException;
      import java.util.Base64;
      import java.util.List;
      /**
       * @author dzx
       * @ClassName:
       * @Description: 移动云mas短信工具类
       * @date 2019年05月15日 15:01:21
       */
      @Component
      public class MobileCloudSmsUtil {
      @Value("${tnar.mobileCloud.sms.url}")
      private String url;
      @Value("${tnar.mobileCloud.sms.ecName}")
      private String ecName;
      @Value("${tnar.mobileCloud.sms.apId}")
      private String apId;
      @Value("${tnar.mobileCloud.sms.secretKey}")
      private String secretKey;
      @Value("${tnar.mobileCloud.sms.sign}")
      private String sign;
      private String addSerial = "";
      @Autowired
      private RestTemplate restTemplate;
      /**
       * 发送普通短信
       *
       * @param mobiles 多个手机号用逗号隔开
       * @param content 短信内容
       * @return
       * @throws UnsupportedEncodingException
       */
      public SendRes sendOrdinarySms(String mobiles, String content) throws UnsupportedEncodingException {
       HttpHeaders httpHeaders = new HttpHeaders();
       httpHeaders.setContentType(MediaType.APPLICATION_JSON);
       SendReq sendReq = new SendReq();
       sendReq.setEcName(ecName).setApId(apId).setSecretKey(secretKey).setMobiles(mobiles).setContent(content).
       setSign(sign).setAddSerial(addSerial);
       StringBuffer stringBuffer = new StringBuffer();
       stringBuffer.append(sendReq.getEcName())
       .append(sendReq.getApId())
       .append(sendReq.getSecretKey())
       .append(sendReq.getMobiles())
       .append(sendReq.getContent())
       .append(sendReq.getSign())
       .append(sendReq.getAddSerial());
       sendReq.setMac(DigestUtils.md5DigestAsHex(stringBuffer.toString().getBytes()).toLowerCase());
      String jsonText = JSON.toJSONString(sendReq);
      String body = Base64.getEncoder().encodeToString(jsonText.getBytes("UTF-8"));
       HttpEntity<String> httpEntity = new HttpEntity<String>(body, httpHeaders);
       JSONObject result = restTemplate.postForObject(url, httpEntity, JSONObject.class);
      return result.toJavaObject(SendRes.class);
       }
      /**
       * 发送模板短信
       *
       * @param mobiles 手机号
       * @param templateId 模板id
       * @param params 参数列表
       * @return
       * @throws UnsupportedEncodingException
       */
      public SendRes sendTemplateSms(String mobiles, String templateId, List<String> params) throws UnsupportedEncodingException {
       HttpHeaders httpHeaders = new HttpHeaders();
       httpHeaders.setContentType(MediaType.APPLICATION_JSON);
       SendTemplateReq sendTemplateReq = new SendTemplateReq();
       sendTemplateReq.setEcName(ecName).setApId(apId).setSecretKey(secretKey).setMobiles(mobiles)
       .setSign(sign).setAddSerial(addSerial)
       .setTemplateId(templateId)
       .setParams(JSON.toJSONString(params.toArray()));
       StringBuffer stringBuffer = new StringBuffer();
       stringBuffer.append(sendTemplateReq.getEcName())
       .append(sendTemplateReq.getApId())
       .append(sendTemplateReq.getSecretKey())
       .append(sendTemplateReq.getTemplateId())
       .append(sendTemplateReq.getMobiles())
       .append(sendTemplateReq.getParams())
       .append(sendTemplateReq.getSign())
       .append(sendTemplateReq.getAddSerial());
       sendTemplateReq.setMac(DigestUtils.md5DigestAsHex(stringBuffer.toString().getBytes()).toLowerCase());
      String jsonText = JSON.toJSONString(sendTemplateReq);
      String body = Base64.getEncoder().encodeToString(jsonText.getBytes("UTF-8"));
       HttpEntity<String> httpEntity = new HttpEntity<String>(body, httpHeaders);
       JSONObject result = restTemplate.postForObject(url, httpEntity, JSONObject.class);
      return result.toJavaObject(SendRes.class);
       }
      }
  
 

 

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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