程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 經由過程第三方接口發送短信驗證碼/短信告訴(推舉)

經由過程第三方接口發送短信驗證碼/短信告訴(推舉)

編輯:關於JAVA

經由過程第三方接口發送短信驗證碼/短信告訴(推舉)。本站提示廣大學習愛好者:(經由過程第三方接口發送短信驗證碼/短信告訴(推舉))文章只能為提供參考,不一定能成為您想要的結果。以下是經由過程第三方接口發送短信驗證碼/短信告訴(推舉)正文


需求:將初次交付暗碼為公共默許暗碼的方法改成點擊入職功效,用短信方法發送體系主動生成的八位含數字、年夜小寫字母和特別符號生成的暗碼。短信發送辦事由雲通訊http://www.yuntongxun.com/供給。

隨秘密碼生成辦法:

/**
* 生成隨即暗碼
* @author chao.gao
* @param pwd_len 生成的暗碼的總長度
* @return 暗碼的字符串
*/
public static String genRandomNum(int pwd_len) {
// String re="(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[!@#$%^&]).{10,}";
String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[A-Za-z0-9@#$%]{8,16}$";
//35是由於數組是從0開端的,26個字母+10個數字
final int maxNum = 26;
int i; //生成的隨機數
int count = 0; //生成的暗碼的長度
char[] str = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k',
'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w',
'x', 'y', 'z'};
char[] upChar = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W',
'X', 'Y', 'Z'};
char[] numChar = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
char[] speChar = {'!', '@', '#', '$', '%'};
StringBuffer pwd = new StringBuffer("");
Random r = new Random();
while (count < 2) {
//生成隨機數,取相對值,避免生成正數,
i = Math.abs(r.nextInt(maxNum)); //生成的數最年夜為36-1
if (i >= 0 && i < str.length) {
pwd.append(str[i]);
count++;
}
}
count=0;
while (count < 2) {
//生成隨機數,取相對值,避免生成正數,
i = Math.abs(r.nextInt(7)); //生成的數最年夜為7-1
if (i >= 0 && i < upChar.length) {
pwd.append(upChar[i]);
count++;
}
}
count=0;
while (count < 2) {
//生成隨機數,取相對值,避免生成正數,
i = Math.abs(r.nextInt(maxNum)); //生成的數最年夜為10-1
if (i >= 0 && i < numChar.length) {
pwd.append(numChar[i]);
count++;
}
}
count=0;
while (count < 2) {
//生成隨機數,取相對值,避免生成正數,
i = Math.abs(r.nextInt(maxNum)); //生成的數最年夜為10-1
if (i >= 0 && i < speChar.length) {
pwd.append(speChar[i]);
count++;
}
}
return pwd.toString();
}

發送短信接口:(jar包見附件)

參考:

https://www.yuntongxun.com/doc/rest/sms/3_2_2_3.html

public class SDKTestSendTemplateSMS {
public static void main(String[] args) {
HashMap<String, Object> result = null; 
CCPRestSDK restAPI = new CCPRestSDK();
restAPI.init("app.cloopen.com", "8883");
// 初始化辦事器地址和端口,臨盆情況設置裝備擺設成app.cloopen.com,端口是8883. 
restAPI.setAccount("accountSid", "accountToken");
// 初始化主賬號稱號和主賬號召牌,上岸雲通信網站後,可在"掌握台-運用"中看到開辟者主賬號ACCOUNT SID和 
主賬號召牌AUTH TOKEN。
restAPI.setAppId("AppId");
// 初始化運用ID,假如是在沙盒情況開辟,請設置裝備擺設"掌握台-運用-測試DEMO"中的APPID。
//如切換到臨盆情況,請應用本身創立運用的APPID
result = restAPI.sendTemplateSMS("號碼1,號碼2等","模板Id" ,new String[]{"模板內容1","模板內容2"});
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"));
}
}
}

以上所述是小編給年夜家引見的經由過程第三方接口發送短信驗證碼/短信告訴(推舉),願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved