【SpringBoot】实现短信验证码登录(榛子云的SDK)

先去官网注册一个账号领一条免费的

复制一些参数和更改短信模板

三个参数
appId,appSecret,templateId
然后短信模板中的{1},{2}参数是后面程序中传入的
在这里插入图片描述
在这里插入图片描述

添加依赖

ps:hutool工具类-是我用的习惯的一个工具类,这里主要是进行json操作 换成别的gjson fastjson都行的

		<!--榛子云短信接口-->
        <dependency>
            <groupId>com.zhenzikj</groupId>
            <artifactId>zhenzisms</artifactId>
            <version>2.0.2</version>
        </dependency>
        <!-- hutool工具类-->
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.3.3</version>
        </dependency>

controller代码

import cn.hutool.json.JSONObject;
import com.yxx.hospital.common.lang.Result;
import com.zhenzi.sms.ZhenziSmsClient;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Map;
import java.util.Random;

/**
 * @Author: YuXinXin
 * @Description:
 * @Date:Created in 21:01 2020/8/1
 **/
@RestController
public class CodeController {
  private String apiUrl="https://sms_developer.zhenzikj.com";
  private String appId = "";
  private String appSecret = "";

  @ApiOperation(value="短信接口", notes="短信接口")
  @RequestMapping(value = "/phone/code",method = RequestMethod.GET)
  public Result getCode(@RequestParam("phoneNumber") String phoneNumber, HttpServletRequest request) {
    try{
      JSONObject json;
      ZhenziSmsClient client = new ZhenziSmsClient(apiUrl, appId, appSecret);
      String code = String.valueOf(new Random().nextInt(899999) + 100000);
      Map<String, Object> params = new HashMap<String, Object>();
      params.put("number", phoneNumber);
      params.put("templateId", "1496");
      //这个参数就是短信模板上那两个参数
      String[] templateParams = new String[2];
      templateParams[0] = code;
      templateParams[1] = "2分钟";
      params.put("templateParams", templateParams);
      String result = client.send(params);

      json = new JSONObject(result);
      if(json.getInt("code")!=0)
        return Result.fail("发送短信失败");
      json = new JSONObject();
      json.append("memPhone",phoneNumber);
      json.append("code",code);
      json.append("createTime",System.currentTimeMillis());
      // 将认证码存入SESSION
      request.getSession().setAttribute("code",json);
      return Result.succ("发送成功~");
    }catch(Exception e){
      e.printStackTrace();
      return Result.fail(e.getMessage());
    }
  }
}

结果展示

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值