短信服務(wù)之發(fā)送短信

1.創(chuàng)建AK

使用阿里云的短信服務(wù)發(fā)送短信需要用到阿里云的API,所以我們需要開通短信服務(wù)之后,創(chuàng)建AK(AccessKeyId和AccessKeySecret),也就是訪問秘鑰。
創(chuàng)建網(wǎng)址https://usercenter.console.aliyun.com/#/manage/ak

2.添加短信簽名

在短信服務(wù)的【國(guó)內(nèi)消息】的【簽名管理】中添加簽名,所謂的短信簽名就是識(shí)別發(fā)送短信的機(jī)構(gòu),一般放在短信的開頭。

3.添加模板

創(chuàng)建發(fā)送短信的模版,在【國(guó)內(nèi)消息】的【模板管理】中,添加模板,根據(jù)自己需要發(fā)送的模板類型添加設(shè)置。模板審核通過之后,我們發(fā)送消息的時(shí)候需要用到模版CODE,也就是


image.png

4.java代碼來(lái)實(shí)現(xiàn)短信的發(fā)送

1.使用阿里的短信服務(wù)首先需要添加相關(guān)的jar包

<!--添加阿里云服務(wù)相關(guān)依賴包-->
        <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.1.1</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-dysmsapi -->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
            <version>1.1.0</version>
        </dependency>

這樣我們就可以使用阿里云的sdk去調(diào)用阿里云的api中的短信發(fā)送接口了。
2.調(diào)用api的短信發(fā)送接口

public class SmsDemo {

    //產(chǎn)品名稱:云通信短信API產(chǎn)品,開發(fā)者無(wú)需替換
    static final String product = "Dysmsapi";
    //產(chǎn)品域名,開發(fā)者無(wú)需替換
    static final String domain = "dysmsapi.aliyuncs.com";

    // TODO 此處需要替換成開發(fā)者自己的AK(在阿里云訪問控制臺(tái)尋找)
    static final String accessKeyId = "yourAccessKeyId";
    static final String accessKeySecret = "yourAccessKeySecret";

    public static SendSmsResponse sendSms() throws ClientException {

        //可自助調(diào)整超時(shí)時(shí)間
        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);

        //組裝請(qǐng)求對(duì)象-具體描述見控制臺(tái)-文檔部分內(nèi)容
        SendSmsRequest request = new SendSmsRequest();
        //必填:待發(fā)送手機(jī)號(hào)
        request.setPhoneNumbers("15000000000");
        //必填:短信簽名-可在短信控制臺(tái)中找到
        request.setSignName("云通信");
        //必填:短信模板-可在短信控制臺(tái)中找到
        request.setTemplateCode("SMS_1000000");
        //可選:模板中的變量替換JSON串,如模板內(nèi)容為"親愛的${name},您的驗(yàn)證碼為${code}"時(shí),此處的值為
        request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");

        //選填-上行短信擴(kuò)展碼(無(wú)特殊需求用戶請(qǐng)忽略此字段)
        //request.setSmsUpExtendCode("90997");

        //可選:outId為提供給業(yè)務(wù)方擴(kuò)展字段,最終在短信回執(zhí)消息中將此值帶回給調(diào)用者
        request.setOutId("yourOutId");

        //hint 此處可能會(huì)拋出異常,注意catch
        SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
        return sendSmsResponse;
    }
}

上面就是具體的詳細(xì)的發(fā)送短信的具體代碼了,其中TemplateParam設(shè)置的時(shí)候參數(shù)是json字符串,json字符串里面的參數(shù)需要與短信模板中的參數(shù)對(duì)應(yīng),缺少不可發(fā)送短信

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容