腾讯云短信申请与接入流程- java开发-短信验证码

腾讯云短信平台每月赠送100条免费短信,相对来说用于开发还是挺不错的,并且像这样的大平台提供的服务也是相对稳定的。

1.打开腾讯云控制台-短信
https://console.cloud.tencent.com/sms/smslist
2.选择添加应用,打开后输入相应的内容即可,一句话描述一下你的应用即可

3.添加成功后,点击应用的标题进入详情页面,在这里你可以看见你的appid(SDK AppID)和appkey(App Key)


4.申请一个短信签名,短信签名是指每次短信中用括号括起来的部分,比如移动发来的短信每次都会有【中国移动】

签名类型选适合自己的,然后上传对应的资料即可

在签名创建成果后,再切换到短信正文,添加短信正文,审核通过后就能正常使用了。

SDK官方引入教程:

https://cloud.tencent.com/document/product/382/13613

最后分享一个自用工具类

SmsUtil .java



import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import com.xiaobao.pojo.Msg;
import org.json.JSONException;
import org.json.JSONObject;


import javax.json.Json;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public abstract class SmsUtil {
    // 短信应用SDK AppID
    int appid = 0; // 1400开头
    // 短信应用SDK AppKey
    String appkey ="" ;
    // 短信模板ID,需要在短信应用中申请
    int templateId = 0; // NOTE: 这里的模板ID`7839`只是一个示例,真实的模板ID需要在短信控制台中申请
    // 签名
    String smsSign = "腾讯云"; // NOTE: 这里的签名"腾讯云"只是一个示例,真实的签名需要在短信控制台中申请,另外签名参数使用的是`签名内容`,而不是`签名ID`

  
    public Msg sendMsg(String phone, int code) {
        Msg msg = new Msg();
        msg.setCode(1001);
        try {
            String[] params = {code + "", 5 + ""};//数组具体的元素个数和模板中变量个数必须一致,例如事例中templateId:5678对应一个变量,参数数组中元素个数也必须是一个
            SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
            SmsSingleSenderResult result = ssender.sendWithParam("86", phone,
                    templateId, params, smsSign, "", "");  // 签名参数未提供或者为空时,会使用默认签名发送短信
            //System.out.println(result);

            JSONObject jsonObject = new JSONObject(result.toString());
            int recode = jsonObject.getInt("result");
            switch (recode) {
                case 0:
                    msg.setCode(1000);
                    msg.setMsg("短信验证码发送成功!");
                    success();
                    break;
                case 1016:
                    msg.setCode(1016);
                    msg.setMsg("手机号格式错误!");
                    break;
                case 1023:
                    msg.setCode(1023);
                    msg.setMsg("请在60s后重试!");//30s内短信已达上限!
                    break;
                case 1024:
                    msg.setCode(1024);
                    msg.setMsg("请在1小时后重试!");//1小时内短信已达上限
                    break;
                default:
                    msg.setCode(1001);
                    msg.setMsg("错误码" + recode + ",请带上您的错误码反馈给客服");
            }


            // msg.setMsg(result.toString());
        } catch (HTTPException e) {
            // HTTP响应码错误
            e.printStackTrace();
            msg.setMsg("HTTP响应码错误");
        } catch (JSONException e) {
            // json解析错误
            e.printStackTrace();
            msg.setMsg("json解析错误!");
        } catch (IOException e) {
            // 网络IO错误
            e.printStackTrace();
            msg.setMsg("网络IO错误!");
        }
        return msg;
    }

    public abstract void success();

}

msg.java

扫描二维码关注公众号,回复: 4543753 查看本文章
package com.xiaobao.pojo;
//消息
public class Msg {
    private int code;
    private String msg;
    private Object body;

    public Msg() {
        this.code = 101;
        this.msg = "系统未知错误!";
    }

    public Msg(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Msg(int code, String msg, Object body) {
        this.code = code;
        this.msg = msg;
        this.body = body;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getBody() {
        return body;
    }

    public void setBody(Object body) {
        this.body = body;
    }

    @Override
    public String toString() {
        return "Msg{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                ", body=" + body +
                '}';
    }
}

调用演示

 SmsUtil smsUtil = new SmsUtil() {
            @Override
            public void success() {
                //验证码发送成功处理的操作 比如将发送信息保存数据库
            }
        };
Msg msg=smsUtil.sendMsg("155667788",5523 );

猜你喜欢

转载自blog.csdn.net/qq_41780372/article/details/85047175