java對接騰訊雲簡訊平臺詳細程式碼
在專案中整合一下簡訊功能。對比了幾個服務商,最終選擇了騰訊雲,因為他每個月免費送100條。
一、申請API
1. 註冊騰訊雲實名認證後,開通簡訊服務。
2. 獲取AppID和AppK待用。
3. 建立簡訊簽名模板和簡訊正文模板。系統說半日內稽核,我的不到五分鐘就稽核通過,點贊。
稽核過程中可能需要上傳一些證明,我用的是網站備案後臺的截圖。
二、呼叫API
1. 引入依賴包
<dependency>
<groupId>com.github.qcloudsms</groupId>
<artifactId>qcloudsms</artifactId>
<version>1.0.5</version>
</dependency>
2、
傳送簡訊工具類
import java.io.IOException;
import com.alibaba.fastjson.JSONException;
import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
public class SMSUtil {
public static String sendSMS(String phoneNumber,String code) {
String reStr = ""; //定義返回值
// 簡訊應用SDK AppID // 1400開頭
int appid = ;
// 簡訊應用SDK AppKey
String appkey = "";
// 簡訊模板ID,需要在簡訊應用中申請
int templateId = ;
// 簽名,使用的是`簽名內容`,而不是`簽名ID`
String smsSign = "";
try {
//引數,一定要對應簡訊模板中的引數順序和個數,
String[] params = {code};
//建立ssender物件
SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
//傳送
SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumber,templateId, params, smsSign, "", "");
// 簽名引數未提供或者為空時,會使用預設簽名傳送簡訊
System.out.println(result.toString());
if(result.result==0){
reStr = "success";
}else{
reStr = "error";
}
} catch (HTTPException e) {
// HTTP響應碼錯誤
e.printStackTrace();
} catch (JSONException e) {
// json解析錯誤
e.printStackTrace();
} catch (IOException e) {
// 網路IO錯誤
e.printStackTrace();
}catch (Exception e) {
// 網路IO錯誤
e.printStackTrace();
}
return reStr;
}
}
3、Controller呼叫SMSUtils
@RequestMapping("/send")
@ResponseBody
public String send(String phone,String code){
String result = SMSUtil.sendSMS("17620937694", "123456");
if(result.equals("success")){
return "傳送成功!";
}else{
return "傳送失敗!";
}
}
完成。。。。