騰訊雲短信申請與接入流程- 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

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 );

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章