前言
各類短信驗證碼
、通知類
的短信、推銷類
的短信,還有騷擾類
的短信,在咱們的生活中層出不窮。那麼這些短信是如何發送的呢,這裏今天老哥就來教教你們,如何發送這個「騷擾
」短信。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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。