• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

java 实现发短信功能—腾讯云短信

java 搞代码 4年前 (2022-01-09) 13次浏览 已收录 0个评论

前言

如今发短信功能已经成为互联网公司的标配,本篇文章将一步步实现java发送短信

考察了许多提供短信服务的三方,几乎所有都需要企业认证才可以使用,这对于个人学习非常不方便。多方比较之后,选择了腾讯云(此处并非做广告),原因有两点:

支持微信公众号认证(门槛低)每月赠送100条免费短信(适合个人学习)(这一点请矿家子弟自行忽略)

开发环境

请参照: 基于SpringBoot构建分模块项目

腾讯云 —短信

找到短信服务

开通之后,点击添加应用

设置短信签名(以公众号为例),签名类型选择公众号或小程序,其余按照要求填写即可

签名完成之后,创建短信模板

等待以上信息审核完成之后,便可以开始使用了,腾讯短信服务需要用到SDK AppID 和App Key ,在这里:

代码

pom.xml引入依赖

<properties>
  <java.version>1.8</java.version>
  <!-- 你的其他依赖。。。 -->
  <tencent.qcloudsms.version>1.0.6</tencent.qcloudsms.version>
</properties>

<dependencies>
  <!-- 你的其他依赖。。。 -->
  <!-- 腾讯短信 -->
  <dependency>
    <groupId>com.github.qcloudsms</groupId>
    <artifactId>qcloudsms</artifactId>
    <version>${tencent.qcloudsms.version}</version>
  </dependency>
</dependencies>

发送短信工具类

package com.wayne.common.utils;
import com.github.qcloudsms.*;
import com.github.qcloudsms.httpclient.HTTPException;
import com.wayne.common.entity.CmsMessageConfig;
import com.wayne.common.exception.CustomException;
import com.wayne.common.form.MessageForm;
import org.json.JSONException;
import java.io.IOException;
/**
 * 发送短信工具类
 * @author Wayne
 * @date 2019/6/26
 */
public class MessageUtils {
  /**
   * 按模板发送短信 支持单发和群发
   * @param isSingle 是否单发 true: 单发,false: 群发
   * @param form 需要发送的短信内容及收信人手机号
   * @param config 短信配置
   * @throws CustomException 发送失败时捕获的异常信息
   */
  public static void sendMessage(Boolean isSingle, MessageForm form, CmsMessageConfig config) throws CustomException {
    validateMessage(form, config);
    String regex = ";";
    String[] params = {form.getCaptcha()};
    String[] phoneNumbers = form.getMobiles().split(regex);
    SmsResultBase result;
    try {
      // 是否单发
      if (isSingle) {
        SmsSingleSender ssender = new SmsSingleSender(config.getAppId(), config.getAppKey());
        result = ssender.sendWithParam("86", phoneNumbers[0], config.getTemplateId(), params, config.getSmsSign(), "", "");
      } else {
        SmsMultiSender msender = new SmsMultiSender(config.getAppId(), config.<strong style="color:transparent">来2源gaodaima#com搞(代@码&网</strong>getAppKey());
        result = msender.sendWithParam("86", phoneNumbers, config.getTemplateId(), params, config.getSmsSign(), "", "");
      }
      System.out.println(result);
    } catch (HTTPException e) {
      e.printStackTrace();
      throw new CustomException("HTTP响应码错误");
    } catch (JSONException e) {
      e.printStackTrace();
      throw new CustomException("json解析错误");
    } catch (IOException e) {
      e.printStackTrace();
      throw new CustomException("网络IO错误");
    }
  }
  /**
   * 校验参数
   */
  private static void validateMessage(MessageForm messageForm, CmsMessageConfig messageConfig) throws CustomException {
    ValidatorUtils.validateEntity(messageForm);
    if (null == messageConfig) {
      throw new CustomException("系统参数异常");
    }
  }
}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:java 实现发短信功能—腾讯云短信

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址