首先,你得在騰訊雲上註冊並開通短信服務。
第一步:建立短信應用java
第二步:建立短信簽名git
第三步:在第二步成功後再建立短信模板github
到這裏就設置完成了,接下來是Java代碼,經過騰訊給的java sdk接口實現
詳情可查看:官方文檔。
首先,在實現以前,須要導入一個jar包:qcloudsms-1.0.6.jar。
maven的話,依賴以下:json
<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.6</version>
</dependency>
1
2
3
4
5
導完jar包就能夠開始編寫了。
發送驗證碼工具類:數組
import java.io.IOException;網絡
import org.json.JSONException;app
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;dom
/**
* 騰訊雲短信發送驗證碼工具類
* @author QQ
*/
public class SendMessageUtil {maven
// 短信應用SDK AppID
int appid = 1400009099; // 1400開頭工具
// 短信應用SDK AppKey
String appkey = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad";
// 短信模板ID,須要在短信應用中申請
int templateId = 7839; // NOTE: 這裏的模板ID`7839`只是一個示例,真實的模板ID須要在短信控制檯中申請
// 簽名
String smsSign = "騰訊雲"; // NOTE: 這裏的簽名"騰訊雲"只是一個示例,真實的簽名須要在短信控制檯中申請,另外簽名參數使用的是`簽名內容`,而不是`簽名ID`
// 驗證碼
String str = "000000";
/**
* 發送短信驗證碼
* @param phoneNum 須要發送給哪一個手機號碼
* @return 驗證碼,若爲000000,則發送失敗
*/
public String sendMessage(String phoneNum) {
try {
// 隨即6位數賦值驗證碼
String strTemp = (int) ((Math.random() * 9 + 1) * 100000) + "";
// 數組具體的元素個數和模板中變量個數必須一致
// 好比你模板中須要填寫驗證碼和有效時間,{1},{2}
// 那你這裏的參數就應該填兩個
String[] params = {strTemp , "5"};
SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
// 簽名參數未提供或者爲空時,會使用默認簽名發送短信
SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNum, templateId, params, smsSign, "", "");
System.out.println("result = " + result);
// 發送成功則給驗證碼賦值
if (result.result == 0) {
str = strTemp;
}
} catch (HTTPException e1) {
// HTTP響應碼錯誤
e1.printStackTrace();
} catch (JSONException e2) {
// json解析錯誤
e2.printStackTrace();
} catch (IOException e3) {
// 網絡IO錯誤
e3.printStackTrace();
}
return str;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
調用工具類:
/**
* 測試短信驗證碼
*/
public void text() {
SendMessageUtil sendMessageUtil = new SendMessageUtil();
sendMessageUtil.sendMessage("18712346789");
}
1
2
3
4
5
6
7
發送成功後,輸出的result爲:
result = {"result":0,"errmsg":"OK","ext":"","sid":"8:vBelUMJHIg3jVC6ZW2U20190710","fee":1}1效果爲: ————————————————