使用阿里大于(大魚)平臺進(jìn)行發(fā)送手機(jī)驗(yàn)證碼的流程
昨天看了一篇博文利用阿里云大于平臺給手機(jī)發(fā)送驗(yàn)證碼和短信,當(dāng)時自己就很感興趣,因?yàn)檫@個技術(shù)很有用,相當(dāng)于以后做用戶注冊的功能可以進(jìn)行短信驗(yàn)證,并且大于平臺的短信收費(fèi)也很低,我自己都沒有花錢。現(xiàn)在來分享一下我昨天做的流程吧
首先去登錄阿里大于: http://www.alidayu.com/
沒有號的就注冊一個!用淘寶就可以登錄了,相信一般人都是不需要注冊的,還可以用支付寶,微博賬號登陸,我用的是支付寶掃碼登錄。在登錄成功之后顯示下圖界面。

點(diǎn)擊頁面的控制臺,然后會跳到另一個頁面,然后你會看大使用短信服務(wù),點(diǎn)擊它就好了,我在這里就不截圖了,然后你會進(jìn)到如下界面。

接下來,點(diǎn)擊短信簽名,接著點(diǎn)擊添加短信簽名,然后進(jìn)行添加就行了,我這是添加之后的結(jié)果,這個需要驗(yàn)證,只有驗(yàn)證通過了才能使用。

接下來,一樣的點(diǎn)擊短信模板,接著點(diǎn)擊添加短信模板,然后添加自己想要的編寫的信息就行。如下圖

其中這個 模版CODE(途中紅色框的那個)有用,在待會自己寫的代碼中會用到,同樣的在短信簽名那部分的 “簽名名稱”也會在代碼中用到。
在這兩個都設(shè)置好之后,就可以進(jìn)行下面的操作了。

如圖所示,選擇你的編寫語言,點(diǎn)擊進(jìn)去,我用的是java,所以就一java為例。
點(diǎn)擊之后你會進(jìn)入如圖所示的界面,現(xiàn)在你要做的就是獲得證書。accessKeyId 和
accessKeySecret。

接下來下載sdk啦,按照幫助文檔提示的將下下來的jar包放到你自己的項(xiàng)目中就可以實(shí)用它 的API接口了,如下圖

一切準(zhǔn)備工作做好之后,現(xiàn)在開始自己寫代碼了,不對是改代碼,因?yàn)槎紟湍銓懞昧?,你只要改一下參?shù),然后寫自己想寫的代碼就夠了。
首先這樣的就這樣的一個簡單的目錄結(jié)構(gòu)吧,

接下在Message.java類中寫
package com.action;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.QuerySendDetailsResponse;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;
public class Message {
public void messagePost() throws ServerException, ClientException{
//設(shè)置超時時間-可自行調(diào)整
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//初始化ascClient需要的幾個參數(shù)
final String product = "Dysmsapi";//短信API產(chǎn)品名稱(短信產(chǎn)品名固定,無需修改)
final String domain = "dysmsapi.aliyuncs.com";//短信API產(chǎn)品域名(接口地址固定,無需修改)
//替換成你的AK
final String accessKeyId = "accessKeyId";//你的accessKeyId,參考本文檔步驟2
final String accessKeySecret = "accessKeySecret";//你的accessKeySecret,參考本文檔步驟2
//初始化ascClient,暫時不支持多region(請勿修改)
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,
accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
//組裝請求對象
SendSmsRequest request = new SendSmsRequest();
//使用post提交
request.setMethod(MethodType.POST);
//必填:待發(fā)送手機(jī)號。支持以逗號分隔的形式進(jìn)行批量調(diào)用,批量上限為1000個手機(jī)號碼,批量調(diào)用相對于單條調(diào)用及時性稍有延遲,驗(yàn)證碼類型的短信推薦使用單條調(diào)用的方式
request.setPhoneNumbers("15000000000");
//必填:短信簽名-可在短信控制臺中找到
request.setSignName("短信簽名");
//必填:短信模板-可在短信控制臺中找到
request.setTemplateCode("模板code");
//可選:模板中的變量替換JSON串,如模板內(nèi)容為"親愛的${name},您的驗(yàn)證碼為$[code]"時,此處的值為
//友情提示:如果JSON中需要帶換行符,請參照標(biāo)準(zhǔn)的JSON協(xié)議對換行符的要求,比如短信內(nèi)容中包含\r\n的情況在JSON中需要表示成\\r\\n,否則會導(dǎo)致JSON在服務(wù)端解析失敗
request.setTemplateParam("{\"name\":\"aaa\", \"code\":\"520\"}");
//可選-上行短信擴(kuò)展碼(擴(kuò)展碼字段控制在7位或以下,無特殊需求用戶請忽略此字段)
//request.setSmsUpExtendCode("90997");
//可選:outId為提供給業(yè)務(wù)方擴(kuò)展字段,最終在短信回執(zhí)消息中將此值帶回給調(diào)用者
request.setOutId("yourOutId");
//請求失敗這里會拋ClientException異常
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
//請求成功
System.out.println(sendSmsResponse.getCode());
System.out.println("請求成功");
}
}
}
就這么簡單,你運(yùn)行這個messagePost方法就可以給指定手機(jī)發(fā)送驗(yàn)證碼短信啦。

標(biāo)注的這些地方是你需要修改的。

其中name和code是傳遞的參數(shù),例如發(fā)送驗(yàn)證碼,可以自己先隨機(jī)數(shù)生成一個4位或6位數(shù)賦值給code然后發(fā)送到手機(jī)上。
總結(jié)
以上所述是小編給大家介紹的使用阿里大于(大魚)平臺進(jìn)行發(fā)送手機(jī)驗(yàn)證碼的流程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
elasticsearch.yml配置文件解讀(ES配置詳解)
elasticsearch的config文件夾里面有一個主配置文件:elasticsearch.yml是es的基本配置文件,下面主要講解下elasticsearch.yml這個文件中可配置文件,感興趣的朋友一起看看吧2024-08-08
聯(lián)邦學(xué)習(xí)論文解讀分散數(shù)據(jù)的深層網(wǎng)絡(luò)通信
這篇文章主要為大家介紹了論文解讀分散數(shù)據(jù)的深層網(wǎng)絡(luò)通信有效學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
使用selenium自動控制瀏覽器找不到Chromedriver問題
這篇文章主要介紹了ChromeDriver安裝與配置問題的解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02
一文學(xué)會Hadoop與Spark等大數(shù)據(jù)框架知識
Hadoop是一個開源的可運(yùn)行于大規(guī)模集群上的分布式文件系統(tǒng)和運(yùn)行處理基礎(chǔ)框架,Spark是UC Berkeley?AMPLab開發(fā)的是一種計(jì)算框架,分布式資源工作交由集群管理軟件(Mesos、YARN),本文介紹Hadoop與Spark大數(shù)據(jù)框架知識,感興趣的朋友一起看看吧2022-04-04
提示“處理URL時服務(wù)器出錯”和“HTTP 500錯誤“的解決方法
關(guān)于提示“處理URL時服務(wù)器出錯”和“HTTP 500錯誤“的解決方法,需要的朋友可以參考下。2009-11-11
bs架構(gòu)和cs架構(gòu)的區(qū)別_動力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了bs架構(gòu)和cs架構(gòu)的區(qū)別,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
typescript?實(shí)現(xiàn)RabbitMQ死信隊(duì)列和延遲隊(duì)列(訂單10分鐘未付歸還庫存)的過程
RabbitMQ作為一款流行的消息隊(duì)列服務(wù),提供了死信隊(duì)列(Dead?Letter?Exchange)功能,能夠有效地處理消息被拒絕、消息過期以及隊(duì)列達(dá)到最大長度等情況,本文將介紹如何利用RabbitMQ的死信隊(duì)列來處理這三種情況,并提供了TypeScript示例代碼,需要的朋友可以參考下2024-03-03

