通過微信公衆號開通短信驗證碼
在項目研發的過程中,之前使用的是郵箱的驗證方式。這次來點高大上的使用短信驗證碼(需要註冊騰訊雲和微信公衆號)
首頁登錄騰訊雲
https://cloud.tencent.com/product/sms
這個就是短信申請的網址了
1、點擊免費領取短信
2、拉倒最下面開始接入即可
(這裏注意看官方的介紹,個人用戶免費送100條、三個月有效。企業用戶免費送1000條)
3、接下來會進入這個頁面
3.1、先可以使用右側的測試短信來測一波
接下來靜靜的等待~
ok~輕鬆完成
4、接下來是重點
4.1、開始創建簽名
a、簽名用途選擇自用
b、類型這裏選的是公衆號,大家可以選app、小程序、網站等(這三個目測需要投資點錢。我第一次使用的是我網站的域名申請的功能都一樣所以選擇公衆號即可)
c、簽名內容寫自己的公衆號名稱(網站那些寫域名名稱即可)
d、證明上傳需要注意一下(點擊查看範例可瞭解)
網站創建去截自己網站域名的備案頁面
公衆號創建的去微信公衆號平臺=》設置=》賬號詳情頁面 截圖
f、申請說明寫公衆號名稱或域名名稱即可
4.2、這樣就完成創建簽名了
(可能需要一段時間審覈,靜靜的等待就可以大概十幾分鍾就好,很快噠。。。)
4.3、下面開始創建模板
(用於發送短信的模板)
這裏大家可隨便發揮了,盡情的揮灑你們的才華~
(內容當中的{1} ,這些和sql語句的佔位符意思一樣,後期可放入驗證碼 )
5、以上一個簡單模板就完成了下面開始在代碼中接入
官方給的教程可以參考(比較複雜)
https://cloud.tencent.com/document/product/382/13613
5.1、下面開始介紹個簡單的方法
首先去Git中下載官方提供的jar包
https://github.com/qcloudsms/qcloudsms_java/releases
(這裏有個坑,以前沒點擊這下過,我居然在這裏栽了更頭)
5.2、下載完成後解壓打開、配好jdk、maven等
測試類中他已經給了一個但是其中包括了自己沒有開通的模塊,所以說選擇新建一個進行測試
// 短信應用 SDK AppID
int appid = 1400009099; // SDK AppID 以1400開頭
// 短信應用 SDK AppKey
String appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
// 需要發送短信的手機號碼
String[] phoneNumbers = {"21212313123", "12345678902", "12345678903"};
// 短信模板 ID,需要在短信應用中申請
int templateId = 7839; // NOTE: 這裏的模板 ID`7839`只是示例,真實的模板 ID 需要在短信控制檯中申請
// 簽名
String smsSign = "騰訊雲"; // NOTE: 簽名參數使用的是`簽名內容`,而不是`簽名ID`。這裏的簽名"騰訊雲"只是示例,真實的簽名需要在短信控制檯申請
以上的appid和appkey在騰訊雲中=》應用管理=》應用列表來查看
其他的都很直白
指定模板 ID 單發短信
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import org.json.JSONException;
import java.io.IOException;
public class TestMyzz {
public static void main(String[] args) {
// 短信應用SDK AppID
int appid = 1400465465; // 1400開頭
// 短信應用SDK AppKey
String appkey = "fadfadssdaffdsaads";
// 需要發送短信的手機號碼
String[] phoneNumbers = {"132456789"};
// 短信模板ID,需要在短信應用中申請
// NOTE: 這裏的模板ID`7839`只是一個示例,
// 真實的模板ID需要在短信控制檯中申請
int templateId = 553611;
// 簽名
// NOTE: 這裏的簽名"騰訊雲"只是一個示例,
// 真實的簽名需要在短信控制檯中申請,另外
// 簽名參數使用的是`簽名內容`,而不是`簽名ID`
String smsSign = "002睿智";
try {
String[] params = {"1234", "2"};
SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumbers[0],
templateId, params, smsSign, "", "");
System.out.println(result + "完成了");
} catch (HTTPException e) {
// HTTP 響應碼錯誤
System.out.println("響應碼錯誤");
e.printStackTrace();
} catch (JSONException e) {
System.out.println(" 解析錯誤");
// JSON 解析錯誤
e.printStackTrace();
} catch (IOException e) {
System.out.println(" 網絡 IO 錯誤");
// 網絡 IO 錯誤
e.printStackTrace();
}
}
}
指定模板 ID 羣發短信
import com.github.qcloudsms.SmsMultiSender;
import com.github.qcloudsms.SmsMultiSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import org.json.JSONException;
import java.io.IOException;
try {
String[] params = {"5678"};
SmsMultiSender msender = new SmsMultiSender(appid, appkey);
SmsMultiSenderResult result = msender.sendWithParam("86", phoneNumbers,
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();
}
拉取短信回執以及回覆
import com.github.qcloudsms.SmsStatusPuller;
import com.github.qcloudsms.SmsStatusPullCallbackResult;
import com.github.qcloudsms.SmsStatusPullReplyResult;
import com.github.qcloudsms.httpclient.HTTPException;
import org.json.JSONException;
import java.io.IOException;
try {
// Note: 短信拉取功能需要聯繫騰訊雲短信技術支持(QQ:3012203387)開通權限
int maxNum = 10; // 單次拉取最大量
SmsStatusPuller spuller = new SmsStatusPuller(appid, appkey);
// 拉取短信回執
SmsStatusPullCallbackResult callbackResult = spuller.pullCallback(maxNum);
System.out.println(callbackResult);
// 拉取回復,國際/港澳臺短信不支持回覆功能
SmsStatusPullReplyResult replyResult = spuller.pullReply(maxNum);
System.out.println(replyResult);
} catch (HTTPException e) {
// HTTP 響應碼錯誤
e.printStackTrace();
} catch (JSONException e) {
// JSON 解析錯誤
e.printStackTrace();
} catch (IOException e) {
// 網絡 IO 錯誤
e.printStackTrace();
}
以上是一些常用的功能,具體的細節可去官方api中查看,下面是地址:
https://cloud.tencent.com/document/product/382/13613