最近做了一個H5的移動項目,其中需要短信驗證,採用的是容聯雲通訊,流程如下:
1、登錄容聯雲通訊http://www.yuntongxun.com/?kw=PPQP,註冊賬號,申請app,然後編輯短信模板。
2、下載容聯的文檔及jar包
3、編寫代碼
package com.gsafety.umuser.util;
import java.util.HashMap;
import com.cloopen.rest.sdk.CCPRestSmsSDK;
import com.opensymphony.xwork2.util.logging.Logger;
import com.opensymphony.xwork2.util.logging.LoggerFactory;
public class SMSSendUtil {
private static final Logger log = LoggerFactory
.getLogger(SMSSendUtil.class);
/**
* 發送容聯安全傘短信的模板
* @param phonenum 電話號碼
* @param b true 短信驗證 false 忘記密碼
* @param str 發送的內容
* @return
*/
public static boolean sendSms(String phonenum,boolean b,String str[]) {
HashMap<String, Object> result = null;
boolean ok=false;
//初始化SDK
CCPRestSmsSDK restAPI = new CCPRestSmsSDK();
//******************************註釋*********************************************
//*初始化服務器地址和端口 *
//*沙盒環境(用於應用開發調試):restAPI.init("sandboxapp.cloopen.com", "8883");*
//*生產環境(用戶應用上線使用):restAPI.init("app.cloopen.com", "8883"); *
//*******************************************************************************
restAPI.init("app.cloopen.com", "8883");
//******************************註釋*********************************************
//*初始化主帳號和主帳號令牌,對應官網開發者主賬號下的ACCOUNT SID和AUTH TOKEN *
//*ACOUNT SID和AUTH TOKEN在登陸官網後,在“應用-管理控制檯”中查看開發者主賬號獲取*
//*參數順序:第一個參數是ACOUNT SID,第二個參數是AUTH TOKEN。 *
//*******************************************************************************
restAPI.setAccount("8a48b5514c982bdb014c9cb4fd160467", "440dc049202d42b4b7bb3fe9dfac9f52");
//******************************註釋*********************************************
//*初始化應用ID *
//*測試開發可使用“測試Demo”的APP ID,正式上線需要使用自己創建的應用的App ID *
//*應用ID的獲取:登陸官網,在“應用-應用列表”,點擊應用名稱,看應用詳情獲取APP ID*
//*******************************************************************************
restAPI.setAppId("8a48b5514fb1a66a014fb5d4db5d07db");
//******************************註釋****************************************************************
//*調用發送模板短信的接口發送短信 *
//*參數順序說明: *
//*第一個參數:是要發送的手機號碼,可以用逗號分隔,一次最多支持100個手機號 *
//*第二個參數:是模板ID,在平臺上創建的短信模板的ID值;測試的時候可以使用系統的默認模板,id爲1。 *
//*系統默認模板的內容爲“【雲通訊】您使用的是雲通訊短信模板,您的驗證碼是{1},請於{2}分鐘內正確輸入”*
//*第三個參數是要替換的內容數組。
*
//**************************************************************************************************
//**************************************舉例說明***********************************************************************
//*假設您用測試Demo的APP ID,則需使用默認模板ID 1,發送手機號是13800000000,傳入參數爲6532和5,則調用方式爲 *
//*result = restAPI.sendTemplateSMS("13800000000","1" ,new String[]{"6532","5"});
*
//*則13800000000手機號收到的短信內容是:【雲通訊】您使用的是雲通訊短信模板,您的驗證碼是6532,請於5分鐘內正確輸入 *
//*********************************************************************************************************************
String smsid="";
if(b){
smsid="37965";
}else{
smsid="37971";
}
System.out.println(smsid);
result = restAPI.sendTemplateSMS(phonenum,smsid,str);
System.out.println("SDKTestGetSubAccounts result=" + result);
String resultstate=(String) result.get("statusCode");
if("000000".equals(resultstate)){
// //正常返回輸出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);
// }
ok=true;
}else{
//異常返回輸出錯誤碼和錯誤信息
log.info("錯誤碼=" + result.get("statusCode") +" 錯誤信息= "+result.get("statusMsg"));
System.out.println("錯誤碼=" + result.get("statusCode") +" 錯誤信息= "+result.get("statusMsg"));
ok=false;
}
return ok;
}
}