腾讯云 短信

主要参数:

appid 

appkey

短信签名

模板id






1. 发短信工具类


public class SmsUtil {

    static final int appid = 12345;
    static final String appkey = "";

    // 短信模板ID,需要在短信应用中申请
    static int templateId = 123456; // NOTE: 这里的模板ID`7839`只是一个示例,真实的模板ID需要在短信控制台中申请
    //templateId7839对应的内容是"您的验证码是: {1}"
    // 签名
    static String smsSign = "中国移动"; // NOTE: 这里的签名"腾讯云"只是一个示例,真实的签名需要在短信控制台中申请,另外签名参数使用的是`签名内容`,而不是`签名ID`
    
    /***
       *  发送验证码
     * @param phone  手机号
     * @param smsCode  验证码
     * @return
     */
    
    public static boolean  sendSms(String phone,String smsCode)  {
    	try {
	        String[] params = {smsCode};//数组具体的元素个数和模板中变量个数必须一致,例如事例中templateId:5678对应一个变量,参数数组中元素个数也必须是一个
	        SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
	        SmsSingleSenderResult result = ssender.sendWithParam("86", phone,templateId, params, "", "", "");  // 签名参数未提供或者为空时,会使用默认签名发送短信
	        System.out.println(result);
	        JSONObject json = new JSONObject(result.toString());
	        if(json.has("errmsg") && "OK".equals(json.getString("errmsg")))
	        	return true;
	    } catch (HTTPException e) {
	        // HTTP响应码错误
	        e.printStackTrace();
	    } catch (JSONException e) {
	        // json解析错误
	        e.printStackTrace();
	    } catch (IOException e) {
	        // 网络IO错误
	        e.printStackTrace();
	    }
    	return false;
    }
    
    
}

2. controller

@RequestMapping(value = "/sendDynamicCode")
@ResponseBody
public JSONObject sendSms(HttpSession session, Model model,String phone) {
	//生成6位验证码
	String dynamicCode = String.valueOf(new Random().nextInt(899999) + 100000);
	
	boolean sendSms = SmsUtil.sendSms(phone, dynamicCode);
	
	if(sendSms == true) {
		//消息发送成功后,把动态码返回给页面做校验。
		JSONObject 	json = new JSONObject();
		json.put("dynamicCode", dynamicCode);
		json.put("msg", "发送成功");
		json.put("createTime", System.currentTimeMillis());
		System.out.println(json.getString("dynamicCode"));
		return json;
	}else {
		//消息发送失败
		JSONObject 	json2 = new JSONObject();
		//json2.put("dynamicCode", dynamicCode);
		json2.put("msg", "发送失败");
		//json2.put("createTime", System.currentTimeMillis());
		System.out.println(json2.getString("msg"));
		return json2;
	}
}

3.页面参考

<a id="get-dynamic-code" class="get-dynamic-code">获取动态码</a>


<style type="text/css">
 .get-dynamic-code {
    float: right;
    width: 100px;
    height: 38px;
    line-height: 40px;
    font-size: 18px;
    text-align: center;
    padding-top: 1px;
    padding-bottom: 4px;
    background-color: #75ceff;
    cursor: pointer;
    color: #fff;
}
</style>



//发送动态码
$("#get-dynamic-code").on("click", function(){
	var phone = $("#phone").val();
	$.ajax({
		type: "POST",
        async : true,
        data: {"phone":phone},
        url:"<%=context%>/sendDynamicCode",
        dataType: "json",
         success: function (data) {
        	//后端生成的验证码
        	 dynamicCode2 = data.dynamicCode;
        	var msg = data.msg;
        	//alert(msg);
        	alert(dynamicCode2);
        	
          /*   var jsonData = $.parseJSON(JSON.stringify(data));
            if (jsonData.status == 0) {
            	//alert("发送成功");
              } else if (jsonData.status == 1) {
            	//alert("发送失败");
              } */
        } 
	});
	
})

//后端生成的动态码
var dynamicCode2;


$('#loginBtn').click(function(){
    checkLogin();
});

function checkLogin(){
	
	var dynamicCode=$('#dynamic-code').val();
	
	if(dynamicCode.length==0){
		alert("请输入手机动态码!");
		return ;
	}

   // 检查验证码
	//输入的动态码
	var inputCode = $("#dynamic-code").val();

	if(inputCode != dynamicCode2){
		alert("动态码错误!")
		$("#dynamic-code").val("");
	}

}




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值