【轉+修改】容聯雲通訊api調用短信發送調用


轉自   https://my.oschina.net/u/1995134/blog/814540

需要榮聯雲通訊 的 相對應SDKjar包。

CCP_REST_SMS_SDK_JAVA_v2.6.3r.jar

調用測試在main方法里:

  public static void main(String[] args){
        ResponseObj obj =   FhPhoneMassageSender.testSender("176****5720","呵呵"); -- 手機號碼及內容
        System.out.println(obj.getResultMsg());
    }

上代碼:

import java.util.HashMap;
import java.util.Set;

import com.cloopen.rest.sdk.CCPRestSmsSDK;public class FhPhoneMassageSender {
    private static String  sms_ytx_url="appsms.cloopen.com";
    private static String  sms_ytx_port="8883";
    private static String  sms_ytx_sid="*****************ff2dea1de4a6f";
    private static String  sms_ytx_token="fa9b5d*************2457508977";
    private static String  sms_ytx_appid="aaf98f89544cd9d9015475b429082343";
    private static String  sms_ytx_valid_min="5";
    private static String  sms_ytx_tempid="8****40";
    /**
     * <p class="detail">
     * 功能:容聯雲通訊-發送短信
     * </p>
     * @author liuwh
     * @date 2016-1-22
     * @param tel    手機號碼,多個用,分隔
     * @param verifyCode  驗證碼
     * @return
     */
    public static ResponseObj sendRegCodeByYTX(String tel, String verifyCode,String verifyName){

        ResponseObj obj = new ResponseObj(true, "操作成功");
        HashMap<String, Object> result = null;
        //初始化SDK
        CCPRestSmsSDK restAPI = new CCPRestSmsSDK();

        restAPI.init(Global.getConfig("sms_ytx_url"), Global.getConfig("sms_ytx_port"));

        restAPI.setAccount(Global.getConfig("sms_ytx_sid"), Global.getConfig("sms_ytx_token"));//賬號、密碼

        restAPI.setAppId(Global.getConfig("sms_ytx_appid"));//應用ID

        String smsValidMin=Global.getConfig("sms_ytx_valid_min");    //驗證碼過期時間
        if(StringUtils.isEmpty(smsValidMin)){
            smsValidMin="5";
        }
        result = restAPI.sendTemplateSMS(tel, Global.getConfig("sms_ytx_tempid"),new String[]{verifyName,verifyCode, smsValidMin});

        System.out.println("SDKTestGetSubAccounts result=" + result);
        if("000000".equals(result.get("statusCode"))){
            //正常返回輸出data包體信息(map)
            HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");
            Set<String> keySet = data.keySet();
            for(String key:keySet){
                Object object = data.get(key);
                System.out.println(key +" = "+object);
            }
        }else{
            //異常返回輸出錯誤碼和錯誤信息
            System.out.println("錯誤碼=" + result.get("statusCode") +" 錯誤信息= "+result.get("statusMsg"));
            obj.setSuccessful(false);
            obj.setResultMsg(String.valueOf(result.get("statusMsg")));
        }
        return obj;
    }

    /**
     * <p class="detail">
     * 功能:容聯雲通訊-發送催款信息
     * </p>
     * @author liuwh
     * @date 2016-1-22
     * @param tel    手機號碼,多個用,分隔
     * @param verifyName 參數值(多個替換坑)
     * @return
     */
    public static ResponseObj sendPressMoneyByYTX(String tel,String... verifyName){

        ResponseObj obj = new ResponseObj(true, "操作成功");
        HashMap<String, Object> result = null;
        //初始化SDK
        CCPRestSmsSDK restAPI = new CCPRestSmsSDK();

        restAPI.init(sms_ytx_url, sms_ytx_port);

        restAPI.setAccount(Global.getConfig("sms_ytx_sid"), Global.getConfig("sms_ytx_token"));//賬號、密碼

        restAPI.setAppId(Global.getConfig("sms_ytx_appid"));//應用ID

        result = restAPI.sendTemplateSMS(tel, Global.getConfig("sms_ytx_press_tempid"), verifyName);

        if("000000".equals(result.get("statusCode"))){
            //正常返回輸出data包體信息(map)
            HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");
            Set<String> keySet = data.keySet();
            for(String key:keySet){
                Object object = data.get(key);
                System.out.println(key +" = "+object);
            }
        }else{
            //異常返回輸出錯誤碼和錯誤信息
            System.out.println("錯誤碼=" + result.get("statusCode") +" 錯誤信息= "+result.get("statusMsg"));
            obj.setSuccessful(false);
            obj.setResultMsg(String.valueOf(result.get("statusMsg")));
        }
        return obj;
    }
    public static ResponseObj testSender(String tel,String... verifyName){
        ResponseObj obj = new ResponseObj(true, "操作成功");
        HashMap<String, Object> result = null;
        //初始化SDK
        CCPRestSmsSDK restAPI = new CCPRestSmsSDK();

        restAPI.init(sms_ytx_url,sms_ytx_port);

        restAPI.setAccount(sms_ytx_sid, sms_ytx_token);//賬號、密碼

        restAPI.setAppId(sms_ytx_appid);//應用ID

        result = restAPI.sendTemplateSMS(tel, sms_ytx_tempid, verifyName);

        if("000000".equals(result.get("statusCode"))){
            //正常返回輸出data包體信息(map)
            HashMap<String,Object> data = (HashMap<String, Object>) result.get("data");
            Set<String> keySet = data.keySet();
            for(String key:keySet){
                Object object = data.get(key);
                System.out.println(key +" = "+object);
            }
        }else{
            //異常返回輸出錯誤碼和錯誤信息
            System.out.println("錯誤碼=" + result.get("statusCode") +" 錯誤信息= "+result.get("statusMsg"));
            obj.setSuccessful(false);
            obj.setResultMsg(String.valueOf(result.get("statusMsg")));
        }
        return obj;
    }
    public static void main(String[] args){
        ResponseObj obj =   FhPhoneMassageSender.testSender("176****5720","呵呵");
        System.out.println(obj.getResultMsg());
    }
}
Global 是用來獲取配置文件內容的。實際開發中可以像測試代碼中那樣把api需要的配置信息直接寫在靜態變量中。
ResponseObj
是自己封裝的返回數據的類型:
package com.thinkgem.jeesite.common.utils;

/**
 * Created by antis on 2017/6/27.
 */
public class ResponseObj {
    /**
     * 總記錄數
     */
    private int total;
    /**
     * 當前記錄集合
     */
    private Object data;
    /**
     * 是否成功
     */
    private boolean successful;
    /**
     * 結果消息
     */
    private String resultMsg;
    /**
     * 錯誤類型
     */
    private String type;
    /**
     * 添加數據
     * @param data
     * @return
     */
    public static ResponseObj successResult(Object data) {
        return new ResponseObj(1,data,true, "", "");
    }
    /**
     * 添加數據
     * @param data
     * @return
     */
    public static ResponseObj successResult(Object data,int total) {
        return new ResponseObj(total,data,true, "", "");
    }
    /**
     * 返回失敗信息
     * @param exMessage
     * @return
     */
    public static ResponseObj failedResult(String exMessage) {
        return new ResponseObj(0, "", false,exMessage, "error");
    }
    /**
     * 返回失敗信息和類型
     * @param exMessage
     * @param type
     * @return
     */
    public static ResponseObj failedResult(String exMessage, String type) {
        return new ResponseObj(0, "",false, exMessage, type);
    }
    /**
     * 構造函數,類型為error
     *
     */
    public ResponseObj() {
        type = "error";
    }
    public ResponseObj(boolean successful,String resultMsg){
        this.successful = successful;
        this.resultMsg = resultMsg;
    }
    public ResponseObj(int total, Object data, boolean successful,String resultMsg, String type) {
        this.total = total;
        this.data = data;
        this.successful = successful;
        this.resultMsg = resultMsg;
        this.type = type;
    }
    /**
     * @return the 總記錄數
     */
    public int getTotal() {
        return total;
    }
    /**
     * @param total 總記錄數 the total to set
     */
    public void setTotal(int total) {
        this.total = total;
    }
    /**
     * @return the 是否成功
     */
    public boolean isSuccessful() {
        return successful;
    }

    /**
     * @param successful 是否成功
     *            the successful to set
     */
    public void setSuccessful(boolean successful) {
        this.successful = successful;
    }


    /**
     * @return the data
     */
    public Object getData() {
        return data;
    }
    /**
     * @param data the data to set
     */
    public void setData(Object data) {
        this.data = data;
    }
    /**
     * @return the 結果消息
     */
    public String getResultMsg() {
        return resultMsg;
    }

    /**
     * @param resultMsg 結果消息
     *            the resultMsg to set
     */
    public void setResultMsg(String resultMsg) {
        this.resultMsg = resultMsg;
    }

    /**
     * @return the 錯誤類型
     */
    public String getType() {
        return type;
    }

    /**
     * @param type 錯誤類型
     *            the type to set
     */
    public void setType(String type) {
        this.type = type;
    }
}
  解釋一下api需要的各個參數
   private static String  sms_ytx_url="appsms.cloopen.com"; --容聯的appsms的url是固定不變的
    private static String  sms_ytx_port="8883";              --端口號,應該也是不變的
    private static String  sms_ytx_sid="*****************ff2dea1de4a6f";  --容聯主賬戶的ACCOUNT SID
    private static String  sms_ytx_token="fa9b5d*************2457508977"; --容聯主賬戶的AUTH TOKEN
    private static String  sms_ytx_appid="aaf98f89544cd9d9015475b429082343";  --正在開發的應用的 APP ID
    private static String  sms_ytx_valid_min="5"; --驗證碼有效時間 可以自己設置,分鍾為單位
    private static String  sms_ytx_tempid="8****40"; --短信模板ID
 
        

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM