一、容聯(lián)云平臺(tái)
容聯(lián)云平臺(tái)是實(shí)現(xiàn)短信驗(yàn)證、還有語(yǔ)音功能等一些操作的平臺(tái),在平臺(tái)注冊(cè)還可以獲得8元的新手額度,一條短信的費(fèi)用是006元,也就是6分錢,在初學(xué)者測(cè)試也是可以非常人性化的,然后我這次進(jìn)行測(cè)試的平臺(tái)呢,也是用到容聯(lián)云給進(jìn)行展示
二、操作教程
2.1注冊(cè)
當(dāng)你注冊(cè)進(jìn)去之后會(huì)有8元的新手額度
填寫(xiě)測(cè)試號(hào)碼
然后這里差不多了跟著下面走著
三、實(shí)踐操作
3.1部署項(xiàng)目使用工具
本次使用的工具是IDEA,然后我為了簡(jiǎn)便就直接創(chuàng)建了Maven項(xiàng)目進(jìn)行開(kāi)發(fā),因?yàn)槭褂玫組aven之后是直接導(dǎo)入SDK的依賴即可,就不需要管jar包了
3.2具體操作
3.2.1、Maven依賴
<dependencies>
<dependency>
<groupId>com.cloopen</groupId>
<artifactId>java-sms-sdk</artifactId>
<version>1.0.3</version>
</dependency>
</dependencies>
3.2.2、不使用Maven獲取JAR包方式
容聯(lián)云通訊——開(kāi)發(fā)文檔——下載(短信Demo下載)——SDK參考(JAVA SDK文檔)注:不使用maven時(shí)需要下載jar包,點(diǎn)擊JAVA SMS SDK進(jìn)入maven下載即可
四、測(cè)試
4.1、示例代碼
在容聯(lián)云已經(jīng)有了測(cè)試的示例,但是我們還需要稍作修改
下面為SDK的示例示例代碼
這些代碼我們可以直接復(fù)制過(guò)去,等下直接進(jìn)行使用,當(dāng)然要注意幾點(diǎn)的地方
4.2、修改步驟
4.2.1、容聯(lián)云的相關(guān)賬號(hào)信息
這三個(gè)里面的數(shù)據(jù)就是填寫(xiě)你容聯(lián)云內(nèi)的開(kāi)發(fā)者賬號(hào)內(nèi)容
這是我們要修改的地方之一,修改的內(nèi)容為
(1)accountSId
(2)accountToken
(3)appId
4.2.2、修改測(cè)試號(hào)碼等信息
那么等我們把賬戶信息修改完之后呢,還需要哪些
你在發(fā)送的時(shí)候是不是需要一個(gè)6位的隨機(jī)數(shù)!安排,只需要一條代碼
//隨機(jī)生成6位數(shù)字為驗(yàn)證碼
String code = String.valueOf(Math.random()).substring(2, 8);
System.out.println(code);
我們?cè)賮?lái)看看運(yùn)行效果
當(dāng)然還有就是你的手機(jī)號(hào)、還有模板、模板的一些參數(shù)
這里的模板就是容聯(lián)云的一個(gè)模板了
我選的登錄模板,所以選1就好
//需要把驗(yàn)證號(hào)轉(zhuǎn)發(fā)到的手機(jī)號(hào)碼
String to = "1560*******";
//在短信管理中選擇模板ID,我選擇的是1
String templateId = "1";
//模板參數(shù)
String[] datas = {code,"30分鐘"};
4.2.3、存放哈希進(jìn)行判斷
//這里是使用了一個(gè)哈希map來(lái)存放手機(jī)號(hào)、模板ID、模板參數(shù)
HashMap<String, Object> result = sdk.sendTemplateSMS(to,templateId,datas);
//如果返回0000則正常發(fā)送,否則返回異常
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{
//異常返回輸出錯(cuò)誤碼和錯(cuò)誤信息
System.out.println("錯(cuò)誤碼=" + result.get("statusCode") +" 錯(cuò)誤信息= "+result.get("statusMsg"));
}
4.2.4、測(cè)試
運(yùn)行結(jié)束后正常情況沒(méi)報(bào)錯(cuò)后一般是手機(jī)立馬會(huì)收到消息的,然后收的驗(yàn)證碼消息是和你的運(yùn)行結(jié)果那串?dāng)?shù)字是一樣的,我們這邊進(jìn)行測(cè)試了一下,下面來(lái)看下結(jié)果吧
(1)運(yùn)行結(jié)果
(2)手機(jī)收到的短信驗(yàn)證結(jié)果!
可以看得到短信驗(yàn)證成功了
下面我在把我的總體測(cè)試代碼發(fā)在下面,但是要記得把相關(guān)的一些數(shù)據(jù)改成自己的不然會(huì)報(bào)錯(cuò)呢
總體測(cè)試代碼
package demo;
import com.cloopen.rest.sdk.BodyType;
import com.cloopen.rest.sdk.CCPRestSmsSDK;
import java.util.HashMap;
import java.util.Set;
/**
* 短信驗(yàn)證測(cè)試
* @author 藤井大叔
*/
public class SmsDemo {
public static void main(String[] args) {
//生產(chǎn)環(huán)境請(qǐng)求地址:app.cloopen.com
String serverIp = "app.cloopen.com";
//請(qǐng)求端口
String serverPort = "8883";
//主賬號(hào),登陸云通訊網(wǎng)站后,可在控制臺(tái)首頁(yè)看到開(kāi)發(fā)者主賬號(hào)ACCOUNT SID和主賬號(hào)令牌AUTH TOKEN
String accountSId = "請(qǐng)?zhí)顚?xiě)accountSId ";
String accountToken = "請(qǐng)?zhí)顚?xiě)accountToken ";
//請(qǐng)使用管理控制臺(tái)中已創(chuàng)建應(yīng)用的APPID
String appId = "請(qǐng)?zhí)顚?xiě)appId ";
CCPRestSmsSDK sdk = new CCPRestSmsSDK();
sdk.init(serverIp, serverPort);
sdk.setAccount(accountSId, accountToken);
sdk.setAppId(appId);
sdk.setBodyType(BodyType.Type_JSON);
//隨機(jī)生成6位數(shù)字為驗(yàn)證碼
String code = String.valueOf(Math.random()).substring(2, 8);
System.out.println(code);
//需要把驗(yàn)證號(hào)轉(zhuǎn)發(fā)到的手機(jī)號(hào)碼
String to = "請(qǐng)?zhí)顚?xiě)手機(jī)號(hào)";
//在短信管理中選擇模板ID,我選擇的是1
String templateId = "1";
//模板參數(shù)
String[] datas = {code,"30分鐘"};
//這里是使用了一個(gè)哈希map來(lái)存放手機(jī)號(hào)、模板ID、模板參數(shù)
HashMap<String, Object> result = sdk.sendTemplateSMS(to,templateId,datas);
//如果返回0000則正常發(fā)送,否則返回異常
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{
//異常返回輸出錯(cuò)誤碼和錯(cuò)誤信息
System.out.println("錯(cuò)誤碼=" + result.get("statusCode") +" 錯(cuò)誤信息= "+result.get("statusMsg"));
}
}
}
好了,短信驗(yàn)證其實(shí)也是很簡(jiǎn)單的一個(gè)小操作,今天就講到這
到此這本篇關(guān)于如何使用 Java 實(shí)現(xiàn)手機(jī)短信驗(yàn)證功能全過(guò)程的文章就介紹到這了,想要了解更多相關(guān) Java 應(yīng)用的其他內(nèi)容請(qǐng)搜索W3Cschool以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持我們!