阿里(大于)發送手機驗證碼

這個,,廢話不多說了,直接開始哈

步驟如下:

1、登陸阿里大于(沒有賬號需要注冊一個),設置短信服務的簽名和模板。

2、實現該接口要做的準備AK(AccessKey)

3、導入相應的jar包

4、代碼

接下來,我們就開始啦~

一、首先去登錄阿里大于:

?http://www.alidayu.com/?

1)沒有號的就注冊一個!用淘寶、支付寶、微博賬號等就可以登錄了,在登錄成功之后顯示下圖界面。?

2)點擊頁面的控制臺,然后會跳到另一個頁面,點擊“使用短信服務”? 如下兩圖:

3)點擊“國內消息”,在簽名管理中,點擊“添加簽名”

我是企業賬號,簽名設置如下,簽名之后會用到的。

4)接下來,一樣的點擊短信模板,接著點擊添加短信模板,然后添加自己想要的編寫的信息就行。code之后會用到,如下圖?

這兩步都需要等到審核,點擊詳情可以看到設置的內容

在這兩個都設置好之后,就可以進行第二步的操作了。?

二、設置實現接口的AccessKey

首先需要用到阿里云平臺的阿里大于官網。(里面有詳細的API介紹。)

https://help.aliyun.com/document_detail/55284.html?spm=a2c4g.11186623.6.567.77f914d1QWnwjX

1)點擊“密鑰管理頁面”

2)新建一對密鑰用于發送短信,如下圖?

3)如圖,就是我剛新建好的密鑰

三、配置sdk環境,導入相應的jar包

1)需要用到2個jar包,一個aliyun-java-sdk-core包,另外一個是alicom-dysms-api包。(jar可以去官網下載,代碼官網上面也有)

https://help.aliyun.com/document_detail/55359.html?spm=a2c4g.11186623.6.595.5cf45777W7Jt5D

下載后,解壓:

2)也可以使用maven:

SDK是否能在maven上獲取?

可以從maven中獲取,在pom文件中添加相關依賴即可。

<dependency>

? <groupId>com.aliyun</groupId>

? <artifactId>aliyun-java-sdk-core</artifactId>

? <version>4.0.6</version> 注:如提示報錯,先升級基礎包版,無法解決可聯系技術支持

</dependency>

<dependency>

<groupId>com.aliyun</groupId>

<artifactId>aliyun-java-sdk-dysmsapi</artifactId>

<version>1.1.0</version>

</dependency>

四、創建類,修改對應的參數。

1)一切準備工作做好之后,現在開始寫代碼了。其實只是需要修改一些參數,代碼部分基本上demo中都寫好了,然后與自己的項目結合就好了。demo在剛剛下載的文件夾中,如圖所示的位置:

2)首先結構目錄如圖:

3)標注的這些地方是你需要修改的。

4)如圖,就是返回的數據

發送驗證碼,其中的code是傳遞的參數,隨機數生成一個6位數賦值給code然后發送到手機上。

當然直接返回,發送成功或失敗也行:

代碼如下:

**

package com.lym.util;

import com.aliyuncs.DefaultAcsClient;

import com.aliyuncs.IAcsClient;

import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;

import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;

import com.aliyuncs.exceptions.ClientException;

import com.aliyuncs.profile.DefaultProfile;

import com.aliyuncs.profile.IClientProfile;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import java.util.Date;

import java.util.Random;

public class Message {

//驗證碼過期時間(分鐘)

? ? private final static Integertime =10;

? ? //產品名稱:云通信短信API產品,開發者無需替換

? ? static final Stringproduct ="Dysmsapi";

? ? //產品域名,開發者無需替換

? ? static final Stringdomain ="dysmsapi.aliyuncs.com";

? ? // 配置accessKeyId和accessKeySecret

? ? static final String accessKeyId ="這里寫你的accessKeyId";

? ? static final String accessKeySecret ="這里寫你的accessKeySecret?";

? ? public static boolean sendMessage(String phone)throws ClientException {

//可自助調整超時時間

? ? ? ? System.setProperty("sun.net.client.defaultConnectTimeout", "10000");

? ? ? ? System.setProperty("sun.net.client.defaultReadTimeout", "10000");

? ? ? ? //初始化acsClient,暫不支持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();

? ? ? ? //必填:待發送手機號

? ? ? ? request.setPhoneNumbers(phone);

? ? ? ? //必填:短信簽名-可在短信控制臺中找到

? ? ? ? request.setSignName("xxx");

? ? ? ? //必填:短信模板-可在短信控制臺中找到

? ? ? ? request.setTemplateCode("SMS_10000000");

? ? ? ? //隨機驗證碼

? ? ? ? String code ="";

? ? ? ? Random radom =new Random(new Date().getTime());

? ? ? ? for (int i =0; i <6; i++) {

//[0,10)

? ? ? ? ? ? code = code + radom.nextInt(10);

? ? ? ? }

????????//可選:模板中的變量替換JSON串,如模板內容為"親愛的${name},您的驗證碼為${code}"時,此處的值為

? ? ? ? request.setTemplateParam("{\"code\":\""+code+"\", \"time\":\""+time+"\"}");

? ? ? ? //選填-上行短信擴展碼(無特殊需求用戶請忽略此字段)

????????//request.setSmsUpExtendCode("999997");

? ? ? ? //可選:outId為提供給業務方擴展字段,最終在短信回執消息中將此值帶回給調用者

? ? ? ? //request.setOutId("SMS_100000");

? ? ? ? //hint 此處可能會拋出異常,注意catch

? ? ? ? SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);

? ? ? ? if(sendSmsResponse.getCode() !=null && sendSmsResponse.getCode().equals("ok") ){

//請求成功

? ? ? ? ? ? System.out.println(sendSmsResponse.getCode());

? ? ? ? ? ? System.out.println("請求成功");

return true;

? ? ? ? }

return false;

? ? }

}

**

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。