程序接入阿里大於發送短信驗證碼功能

前言

各類短信驗證碼通知類的短信、推銷類的短信,還有騷擾類的短信,在咱們的生活中層出不窮。那麼這些短信是如何發送的呢,這裏今天老哥就來教教你們,如何發送這個「騷擾」短信。java

流程預覽

入駐阿里雲

1.阿里雲註冊入口:點擊註冊頁面程序員

2.實名認證:點擊進行實名認證web

3.綁定企業支付寶:點擊綁定企業支付寶spring

開通短信服務

1.開通短信服務:點擊開通短信服務api

2.進入控制檯:點擊查看控制檯頁面微信

獲取AccessKey

1.建立AccessKey: 點擊建立AccessKeydom

2.獲取AccessKey ID和AccessKey Secret:點擊查看AccessKey ID和AccessKey Secret編輯器

建立簽名和模版

1.建立簽名前查看短信規則和審覈規則:短信業務規則,審覈規則學習

2.建立短信簽名:點擊查看建立短信簽名flex

3.建立短信模版:點擊查看建立短信模版

代碼實現

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>

java代碼(國內短信版本)

public class phone {

  /**
   * 產品名稱:雲通訊短信API產品,開發者無需替換
   */

  static final String product = "Dysmsapi";

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

  static final String domain = "dysmsapi.aliyuncs.com";

  // TODO 此處須要替換成開發者本身的AK(在阿里雲訪問控制檯尋找)
  static final String accessKeyId = "";
  static final String accessKeySecret = "";

  public static SendSmsResponse sendSms(String phone, Integer codeMsg, String templateCode, String signName) 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(signName);
      //必填:短信模板-可在短信控制檯中找到
      request.setTemplateCode(templateCode);
      //可選:模板中的變量替換JSON串,如模板內容爲"親愛的${name},您的驗證碼爲${code}"時,此處的值爲
      request.setTemplateParam("{\"code\": "+ codeMsg +"}");

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

      // 可選:outId爲提供給業務方擴展字段,最終在短信回執消息中將此值帶回給調用者
      request.setOutId("yourOutId");

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

      return sendSmsResponse;
  }

  public static void main(String[] args) {
      Integer code = (int)((Math.random()*9+1)*100000);
      try {
          SendSmsResponse response = sendSms("電話號", code, "模板code""簽名名稱");
          System.out.println(response.getCode() + " and " + response.getMessage());
      } catch (ClientException e) {
          e.printStackTrace();
      }
  }
}

結語

因爲這個發短信要錢,老哥就沒演示最後發短信的那一步,歸根結底,仍是老哥太窮了,淚目!!!

關注微信公衆號:IT 老哥

回覆:Java實戰項目視頻教程:便可獲取200G,27套實戰項目視頻教程

回覆:Java 學習路線,便可獲取最新最全的一份學習路線圖

回覆:Java 電子書,便可領取 13 本頂級程序員必讀書籍

回覆:Java 全套教程,便可領取:Java 基礎、Java web、JavaEE 所有的教程,包括 spring boot 等

回覆:簡歷模板,便可獲取 100 份精美簡歷


本文分享自微信公衆號 - IT老哥(dys_family)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索