榛子云短信验证平台与springboot集成的短信验证

登录 - 榛子云短信用户系统 (zhenzikj.com)

上面是登录榛子云短信验证平台的入口,此平台的短信大概为3.1分一条短信

如何与spring boot进行集成呢,我以注册为例来慢慢讲解

1.注册号榛子云账号并充值可发送短信

榛子云短信验证平台与springboot集成的短信验证_第1张图片

2.在项目pom.xml导入jar包


        
        
            com.zhenzikj
            zhenzisms
            2.0.2
        
        
        
            com.alibaba
            fastjson
            1.2.47
        

 3.编写一个contorller,用与调用榛子云短信验证平台发送短信

package com.huamei.trade.controller;

import com.alibaba.fastjson.JSONObject;
import com.zhenzi.sms.ZhenziSmsClient;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ThreadLocalRandom;

@Controller
public class SendCodeController {
    //短信平台相关参数
    //这个不用改
    private String apiUrl = "https://sms_developer.zhenzikj.com";
    //榛子云系统上获取
    //AppId
    private String appId = "112617";
    //AppSecret
    private String appSecret = "53846b68-f624-4d67-807a-4be3279612b3";

    @ResponseBody//这个注解是mvc的拦截器的应该通过注解,可不要
    @RequestMapping("/sendCode")
    public String sendCode(String memPhone) {
        try {
            //短信发送需要的参数是json类型
            JSONObject json;
            //随机6位生成验证码
            String code = String.valueOf(ThreadLocalRandom.current().nextInt(100000, 1000000));
            //将验证码通过榛子云接口发送至手机
            ZhenziSmsClient client = new ZhenziSmsClient(apiUrl, appId, appSecret);
            //参数类型
            Map params = new HashMap<>();
            //前台输入的手机号
            params.put("number", memPhone);
            //这个模板id对应的是榛子云个人中心的模板id
            params.put("templateId", 10777);
            //参数占位符,不同的模板有不同的参数个数 目前用的模板有两个参数
            String[] templateParams = new String[2];
            //第一个参数 随机生成的六位验证码
            templateParams[0] = code;
            //第二个参数 x分钟
            templateParams[1] = "5";
            //把参数占位符放在整体参数中
            params.put("templateParams", templateParams);
            //执行发送短信
            String result = client.send(params);
            System.out.println(result);
            json = JSONObject.parseObject(result);
//            发送短信失败
            if (json.getIntValue("code") != 0) {
                return null;
            }
            return code;
        } catch (Exception e) {
            e.printStackTrace();
            return "code not found";
        }
    }

    /**
     * 跳转发送短信页面
     *
     * @return java.lang.String
     **/
    @RequestMapping("/goSendCode")
    public String goSendCode() {
        return "/sendCode";
    }

}

4.编写前台,调用contorller发送验证码




	<#include "common/head.html">
	
	
	
	
	

	




用户注册

完成此注册,即表明您同意了我们的<使用条款和隐私策略>

已有账号

前台我采用的是free marker,如果有语法不懂得可去我博客看free marker讲解

free make详解icon-default.png?t=M85Bhttps://blog.csdn.net/weixin_67150631/article/details/127840284?spm=1001.2014.3001.5501

 榛子云短信验证平台与springboot集成的短信验证_第2张图片

效果演示 

 榛子云短信验证平台与springboot集成的短信验证_第3张图片

 注意:

要看清出自己得appid和appseret,还有自己得模板id,短信呢挺贵得,注意测试得时候慢慢来

你可能感兴趣的:(springboot,spring,boot,java,spring)