項目中用到短信驗證功能,看到騰訊雲有短信服務,就直接使用了,固然其它公司也會停工短信服務,百度能夠找到不少,使用的狀況應該大同小異,這裏就以騰訊雲的短信服務爲例,說明一下短信服務的申請和使用。java
1 短信服務申請git
登陸騰訊雲以後,在雲產品裏面選擇移動和通訊,短信。github
在彈出的界面,點擊添加應用。json
在彈出的窗口,填寫應用名稱和應用簡介數組
填寫完成以後,平臺會爲咱們的應用建立一條應用,點擊項目名稱「短信測試項目」。網絡
進入以後,裏面有兩個很是重要的參數appid和appkey,這兩個參數會在程序中用到。app
有了以上兩個參數,就能夠發短信了,下面就是要配置短信的內容模板,點擊上面的國內短信。maven
而後依次點擊短信內容配置—短信簽名—建立簽名,以後會彈出一個建立短信簽名的窗口,須要填寫相關信息。函數
其中紅色方框的簽名內容,就是短信內容中一開始的簽名。這部分填寫以後須要騰訊審覈,若是材料沒問題,審覈會很快經過,若是沒有經過,就看他們給的失敗信息。好比我用的是我的帳號,簽名類型就須要選擇他用,除了須要公司的營業執照,還須要公司的受權書,他們給提供格式,須要公司蓋章。完成以後點擊確認,會在短信簽名下方生成一條短信簽名信息。測試
短信簽名經過以後,須要編輯典型正文,點擊上方的短信正文。
點擊建立正文模板,而後會彈出正文模板的窗口。
此處,模板名稱和申請說明可正常填寫,重點看一下短信內容的填寫,有一個模板示例,按照示例填寫。確認。爲了不不合法信息,騰訊也是要審覈的,這個審覈速度也很快。
在短信正文下方也會生成一條信息。
注意這個地方,紅色方框處有一個ID,這也是一個很重要的參數,程序中也會用到,在程序中爲templateID,也就是模板ID。
2 程序代碼
使用java編寫代碼,參考地址爲https://cloud.tencent.com/document/product/382/13613,程序可分爲兩部分,一個是maven引入,一個是main函數測試。
Maven部分
<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.6</version>
</dependency>
代碼部分
package com.example.demo.util;
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 QCloudSMS {
public static void main(String[] args) {
// 短信應用SDK AppID
int appid = 1400xxxx; // 1400開頭
// 短信應用SDK AppKey
String appkey = "26xxxxf3";
// 須要發送短信的手機號碼
String[] phoneNumbers = {"13512345678"};
// 短信模板ID,須要在短信應用中申請
int templateId = 3xxxx9; // NOTE: 真實的模板ID須要在短信控制檯中申請
//templateId7839對應的內容是"您的驗證碼是: {1}"
try {
String[] params = {"5678"};//數組具體的元素個數和模板中變量個數必須一致,例如事例中templateId:5678對應一個變量,參數數組中元素個數也必須是一個
SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumbers[0],
templateId, params, "", "", ""); // 簽名參數未提供或者爲空時,會使用默認簽名發送短信
System.out.println(result);
} catch (HTTPException e) {
// HTTP響應碼錯誤
e.printStackTrace();
} catch (JSONException e) {
// json解析錯誤
e.printStackTrace();
} catch (IOException e) {
// 網絡IO錯誤
e.printStackTrace();
}
}
}
運行程序以後,會在手機上收到一條短信。
3 結語
短信服務申請比較簡單,使用也不復雜。在一開始使用的時候仍是有一些坑,好比templateID這個參數,是短信正文的ID,不是短信簽名的ID,這個在調試的時候也走了彎路。
短信發送程序,在實際使用的時候,發送模塊放到util包中,隨機碼也須要寫程序生成。