Java加腾讯云实现短信验证码功能

一、概要

现如今在日常工作和生活中短信验证码对于我们来说是非常熟悉的,比较常见的注册账号或者交易支付时候,手机会收到一个短信验证码,我们可以通过验证码来有效验证身份,避免一些信息被盗。

验证身份

目前随着app软件以及一些电商网站发展,在注册相关账号或者支付时候都离不了短信验证码,通过验证码能够有效避免一些重复数据或者烂数据。而且只需要而只要在规定时间内正确输入短信验证码,就可以直接登录账号或者进行相关交易支付等。

1.0、具体的实现步骤

1.0.1、首先你必须要有一个备案成功的网站,然后添加一个短信应用,如下图:

第一步:创建短信应用

第二步:创建短信签名

第三步:在第二步成功后再创建短信模板

第四步:这里就设置完成了,接下来是Java代码,通过腾讯给的java sdk接口实现

 

package com.hexianwei.sms;

import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import org.json.JSONException;

import javax.xml.ws.http.HTTPException;
import java.io.IOException;
import java.util.Random;

public class SendSMSUtils {
    public static void main(String[] args) {
        //腾讯短信应用的 SDK AppID
        int appid = 1400******;
        String appkey = "****************************";//腾讯云短信中的 App Key
        int templateId = ******;// NOTE: 这里是短信模板ID需要在短信控制台中申请
        String smsSign = "";//设置信息标头,如【腾讯云】
        //验证码
        String str = "";
        try {
            //随机生成6位的验证码
            Random random = new Random();
            for (int i = 0; i < 6; i++) {
                str += random.nextInt(10);
            }
            String[] params = {str, "2"};
            SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
            // 签名参数未提供或者为空时,会使用默认签名发送短信,这里的13800138000是为用户输入的手机号码
            SmsSingleSenderResult result = ssender.sendWithParam("86", "13800138000", templateId, params, smsSign, "", "");
            System.out.println(result);
        } catch (HTTPException e) {
            // HTTP响应码错误
            e.printStackTrace();
        } catch (JSONException e) {
            // json解析错误
            e.printStackTrace();
        } catch (IOException e) {
            // 网络IO错误
            e.printStackTrace();
        } catch (com.github.qcloudsms.httpclient.HTTPException e) {
            e.printStackTrace();
        }
    }
}

 

 注:本博客仅为个人学习笔记!

posted @ 2018-12-21 16:08  何仙伟  阅读(3080)  评论(2编辑  收藏  举报