1. 程式人生 > >java對接騰訊雲簡訊平臺詳細程式碼

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 "傳送失敗!";
        }
    }

完成。。。。