开学第二课:SSM 实现短信验证码发送功能,不收藏就没了

本文讲解了如何在SSM项目中实现短信验证码发送功能,选用荣联云通讯作为短信服务商,并提供了配置环境、获取账户授权令牌、设置properties文件、编写接口与实现类的详细步骤,强调了查看开发文档的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

噼刺噼刺,大家好呀,我是梦梦,我又来了,今天呢,这篇笔记记录的是,我最近学到的一个新知识——短信的第三方接入(ps:梦梦也是刚毕业的学生,首次接触第三方的接入,勿喷勿喷)。

        “同学们,开始上课了,今天我们来讲在项目中如何使用SSM接入第三方短信技术。我们知道,当你使用一个软件的时候,都得先注册才能使用,注册的时候会有短信发送验证码这一功能,验证码填写正确了,才能注册成功,否则,会提示手机号或者验证码错误,平时我们都在使用这个功能,但是大家知道这个功能到底是怎么实现的吗?今天我们就是来聊一下这个技术。”李老师边打开ppt,边说着,见我们都摇摇头,李老师就继续说道。

        “首先呢,我们需要选择一个服务商,我们可以选择的服务商有:阿里云短信、腾讯云短信、百度云SMS、荣联云通讯,我们今天选择荣联云,因为这个注册之后有8元的免费试用,其他的服务商都需要充钱,大家点击右侧网址注册云联云账号。大家注册过之后来到主页面,因为老师这边呢,之前做过测试,就剩7块多了,大家新注册的账号应该是8元的。”荣联云通讯

在这里插入图片描述
在这里插入图片描述
        “大家来到官网主页面会看到一个开发者账号,咱们大家需要点开眼睛,获取自己的“账户授权令牌”的内容,复制一下。请大家把自己项目的环境配置好,然后再专门建一个properties文件来存放你荣联云账号信息,大家就把刚刚查看的自己的令牌粘贴到第二行“ssm.authToken”中,然后再把自己的账号ID和AppID分别复制到sms.properties配置文件中,我的是已经复制好了的。

在这里插入图片描述
        “大家粘贴好之后,还是回到荣联云的官网上,左侧有一个‘测试号码’这个专栏,右侧输入你测试的手机号,可以是你自己的,也可以是你同桌的,一会方便注册。”
在这里插入图片描述
        “接下来,我们开始写测试代码了,先写一个SmsService接口”

/**
 * 短信发送接口 
 * @author hduser
 *
 */
public interface SmsService {

	/**
	 * 发送短信
	 * @param to 是要发送的手机号码,可以用逗号分隔,一次最多支持100个手机号
	 * @param templateId 是模板ID,在【云通讯】平台上创建的短信模板的ID值;测试的时候可以使用系统的默认模板,id为1
	 * @param datas 替换模板"您的验证码是{1},请于{2}分钟内正确输入"中的内容
	 * @throws Exception 
	 */
	public void send(String to, String templateId, String[] datas) throws Exception;
}

        “接口写好了,接下来我们是不是就需要写实现类了,同学们,其实这个实现的步骤也不需要我们手动敲代码,在荣联云官网的开发文档里就有示例。现在呢,大家还是进入荣联云的官网首页,依次点击‘开发文档’、‘短信开发’、‘Java JDK’,这时我们会看到好多代码,这些代码就是短信发送验证码的核心代码,咱们可以直接拿来使用,也就是说,把这行代码直接复制到你的实现类中的方法中。”
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

package cn.itrip.auth.service;

import com.cloopen.rest.sdk.BodyType;
import com.cloopen.rest.sdk.CCPRestSmsSDK;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Set;

@Service
public class SmsServiceImpl implements SmsService{
    /**
     * 发送短信
     *
     * @param to         是要发送的手机号码,可以用逗号分隔,一次最多支持100个手机号
     * @param templateId 是模板ID,在【云通讯】平台上创建的短信模板的ID值;测试的时候可以使用系统的默认模板,id为1
     * @param datas      替换模板"您的验证码是{1},请于{2}分钟内正确输入"中的内容
     * @throws Exception
     */
    @Override
    public void send(String to, String templateId, String[] datas) throws Exception {
        //生产环境请求地址:app.cloopen.com
        String serverIp = "app.cloopen.com";
        //请求端口
        String serverPort = "8883";
        //主账号,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKEN
        String accountSId = "8a216da87a332d53017a557137370ce9";
        String accountToken = "e9863c2e24ad43cd89a75f5e319211d6";
        //请使用管理控制台中已创建应用的APPID
        String appId = "8a216da87a332d53017a557138a90cf0";
        CCPRestSmsSDK sdk = new CCPRestSmsSDK();
        sdk.init(serverIp, serverPort);
        sdk.setAccount(accountSId, accountToken);
        sdk.setAppId(appId);
        sdk.setBodyType(BodyType.Type_JSON);
        //HashMap<String, Object> result = sdk.sendTemplateSMS(to,templateId,datas);
        HashMap<String, Object> result = sdk.sendTemplateSMS(to,templateId,datas);
        if("000000".equals(result.get("statusCode"))){
            //正常返回输出data包体信息(map)
            HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");
            Set<String> keySet = data.keySet();
            for(String key:keySet){
                Object object = data.get(key);
                System.out.println(key +" = "+object);
            }
        }else{
            //异常返回输出错误码和错误信息
            System.out.println("错误码=" + result.get("statusCode") +" 错误信息= "+result.get("statusMsg"));
        }
    }
}

        “对了,同学们,不要忘记导依赖。”李老师看着屏幕提醒着我们。

	<dependency>
      <groupId>com.cloopen</groupId>
      <artifactId>java-sms-sdk</artifactId>
      <version>1.0.3</version>
    </dependency>

        “赋值好了吗,同学们?好了的话,我们就开始在controller中测试了。”

@RestController
public class HelloController {

    @Resource
    private SmsService smsService;

    @RequestMapping("/send")
    public String sendMsg() throws Exception {
        //1,生成一个四位的随机数
        int code = MD5.getRandomCode();
        //2,数组
        String[] datas = {String.valueOf(code),"5"};
        //3,发送短信
        smsService.send("15239908002","1",datas);
        return "短信发送成功";
    }
}

        “大大家可以跟着我一起测试一下。”
在这里插入图片描述
        “下面这是荣联云给我发的短信,就看到我的测试成功了,大家的好了吗?”

在这里插入图片描述
        我们都点点头,说:“好了。”

        李老师接着说:“写完之后,是不是感觉发送短信也不难,就是看开发文档就行了,同学们,这就发现,学会看开发文档是不是挺重要的。”我们点点头。

        “那行,我们今天就先讲到这,明天再结合项目来详细说说,短信注册再项目中是如何用到的。”
        “老师再见。”

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦梦~~

你的鼓励是对我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值