使用java實(shí)現(xiàn)手機(jī)短信驗(yàn)證全過程
一、容聯(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元的新手額度
填寫測(cè)試號(hào)碼
然后這里差不多了跟著下面走著
三、實(shí)踐操作
3.1部署項(xiàng)目使用工具
本次使用的工具是IDEA,然后我為了簡(jiǎn)便就直接創(chuàng)建了Maven項(xiàng)目進(jìn)行開發(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)云通訊——開發(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ù)制過去,等下直接進(jìn)行使用,當(dāng)然要注意幾點(diǎn)的地方
4.2、修改步驟
4.2.1、容聯(lián)云的相關(guān)賬號(hào)信息
這三個(gè)里面的數(shù)據(jù)就是填寫你容聯(lián)云內(nè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é)束后正常情況沒報(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è)看到開發(fā)者主賬號(hào)ACCOUNT SID和主賬號(hào)令牌AUTH TOKEN String accountSId = "請(qǐng)?zhí)顚慳ccountSId "; String accountToken = "請(qǐng)?zhí)顚慳ccountToken "; //請(qǐng)使用管理控制臺(tái)中已創(chuàng)建應(yīng)用的APPID String appId = "請(qǐng)?zhí)顚慳ppId "; 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í)顚懯謾C(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ān)java實(shí)現(xiàn)短信驗(yàn)證內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- java自定義注解驗(yàn)證手機(jī)格式的實(shí)現(xiàn)示例
- 使用Java 實(shí)現(xiàn)一個(gè)“你畫手機(jī)猜”的小游戲
- 微信小程序獲取手機(jī)號(hào),后端JAVA解密流程代碼
- 大數(shù)據(jù) java hive udf函數(shù)的示例代碼(手機(jī)號(hào)碼脫敏)
- 如何使用Java redis實(shí)現(xiàn)發(fā)送手機(jī)驗(yàn)證碼功能
- Java獲取手機(jī)號(hào)碼歸屬地的實(shí)現(xiàn)
- Java實(shí)現(xiàn)發(fā)送手機(jī)短信語(yǔ)音驗(yàn)證功能代碼實(shí)例
相關(guān)文章
手把手教你寫Maven的archetype項(xiàng)目腳手架
本文主要介紹了Maven的archetype項(xiàng)目腳手架,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08基于SpringBoot實(shí)現(xiàn)驗(yàn)證碼功能(兩種驗(yàn)證碼方式)
這篇文章主要介紹了基于SpringBoot實(shí)現(xiàn)驗(yàn)證碼功能,今天我們介紹的是兩種主流的驗(yàn)證碼,一種就是進(jìn)行計(jì)算的驗(yàn)證碼,另外一種就是不需要計(jì)算,直接輸入的驗(yàn)證碼,需要的朋友可以參考下2024-08-08Spring @Configuration和@Component的區(qū)別
今天小編就為大家分享一篇關(guān)于Spring @Configuration和@Component的區(qū)別,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12