短信验证码

本文以大汉云通信为主

一、前端写一个请求的接口,请求手机验证码

二、主要的java代码

/**
     * 发送手机验证码(设置验证码到session中)
     */
    @GetMapping("/user/mobileCode")
    public void getMobileCode(HttpSession session, String mobileNo) {
        //生成4位随机数
        try {
            String fourRandom = WebUtils.getFourRandom();
            SendSmsDemo.sendSMS(mobileNo, "3", new String[]{fourRandom, "3"}, session);
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            throw new UserException(ResultEnum.SEND_MOBILEMESSAGE_ERROR);
        }

    }

三、短信接口调用

package com.hm.utils.note;
/**
 * Copyright 2003-2033 dahantc.com Inc.
 */


import com.hm.utils.note.com.dahantc.sss.sdk.SmsSDK;

import javax.servlet.http.HttpSession;
import java.util.Map;


public class SendSmsDemo {


	
/*	public static void main(String[] args) {
		
		*//*
	     * 短信接口调用说明
	     * 假设您想给手机号159xxxx1234发送一条短信,
	     * 您打算使用的模板ID为2,对应模板内容为:"您好,您的手机验证码为:{1},{2}分钟内有效"
	     * 给这个模板传入的参数为5678和3,则调用方式为:
	     * sendSMS("159xxxx1234", "2", ['5678','3']);
	     * 最终收到的短信内容为:"【云通讯】您好,您的手机验证码为5678,3分钟内有效"
	     *//*
		//SendSmsDemo.sendSMS("13719193845", "4", new String[]{"5937", "3"});
	}*/
	
	public static void sendSMS(String to, String tempId, String[] datas, HttpSession session) {
		// 初始化SDK
		SmsSDK smsSDK = new SmsSDK();
	    
		/*
		 * 帐户参数配置
		 * 用户登录之后在开发者控制台【首页】寻找以下配置参数:
		 * AccountSid: 帐号ID,对应开发者帐号下的 ACCOUNT SID
		 * AuthToken: 授权令牌,对应开发者帐号下的 AUTH TOKEN
		 * ApiUrl: API调用路径,对应着开发者后台中的API URL
		 * AppId: 应用ID,对应开发者控制台【应用管理】S中的某个APP ID
		 */
	    smsSDK.setAccountSid("**自己注册自己的**");
		smsSDK.setAuthToken("**自己注册自己的**");
		smsSDK.setApiUrl("http://www.dahancloud.com/");
		smsSDK.setAppId("**自己注册自己的**");

		/*
	     * 发送模板短信
	     * to 手机号码,多个手机号码需用英文逗号分开
	     * tempId 模板ID,对应开发者后台中的模板编号
	     * datas 替换内容,格式为数组,例如:new String[]{"1238", "3"}
	     */
		Map<String, Object> result = smsSDK.sendSMS(to, tempId, datas); //实际调用请保证这些参数真实有效!
		System.out.println(result);
		if ("000000".equals(result.get("statusCode"))) {
			// 发送成功
			Map<String, Object> templateSMS = (Map<String, Object>) result.get("templateSMS");
			System.out.println("dateCreated: " + templateSMS.get("dateCreated"));
			System.out.println("smsMessageSid: " + templateSMS.get("smsMessageSid"));
			//发送成功,将验证码存到session中
			session.setAttribute("validateCode", datas[0]);
		} else {
			//错误处理
			System.out.println("错误码=" + result.get("statusCode") + " 错误信息= " + result.get("statusMsg"));
		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值