## 前言: 阿裡雲簡訊服務是一項基於雲計算和大數據技術的企業級簡訊平臺服務。它能夠為企業和開發者提供高可用、高性能、高穩定性的簡訊發送服務,可以快速地將各類業務通知、驗證碼、營銷推廣等信息發送給用戶。在我們經常登錄一些系統或者APP時候,經常會遇到其他登錄登錄方式——簡訊驗證碼登錄。這也是我前一段 ...
前言:
阿裡雲簡訊服務是一項基於雲計算和大數據技術的企業級簡訊平臺服務。它能夠為企業和開發者提供高可用、高性能、高穩定性的簡訊發送服務,可以快速地將各類業務通知、驗證碼、營銷推廣等信息發送給用戶。在我們經常登錄一些系統或者APP時候,經常會遇到其他登錄登錄方式——簡訊驗證碼登錄。這也是我前一段時間優化一個系統時新增加的一個登錄功能,mark記錄一下。
一、準備工作:
登錄阿裡雲官網註冊用戶:
登錄後完成個人或者企業認證:
說明:供個人學習測試,建議個人認證就可以。認證完成後,會贈送100條免費測試簡訊,用完後需要續費購買。
創建AccessKey :
Step1:點擊右上角頭像=>AccessKey 管理
Step2:點擊創建,填寫內容後創建,此處我已經創建
Step3:創建後,查看複製出AccessKeySecret和AccessKeyId,供後續程式調用API使用
創建簽名 :
說明:簡訊發送時,必須要模板和簽名搭配使用,必須創建。創建消息模板時候需要關聯簽名,所以要先創建簽名,等待簽名審核通過,再創建消息模板。
創建消息模板:
說明:如上所述,需要關聯已經審核通過的簽名。
完成創建詳情:
二、創建項目:
項目結構:
說明:方便測試,創建Winform窗體程式。項目結構目錄如下:
說明:通過Nuget引用阿裡雲SDK包
Aliyun-net-sdk-dysmsapi -----api包Aliyun-net-sdk-core -----安裝核心SDK
三、核心代碼:
主窗體:
點擊觸發事件代碼:
private void btSendMsg_Click(object sender, EventArgs e)
{
string phone = "13004089962";//手機號碼,多個用,分割
string code = "888888";//驗證碼
string msg = "{\"code\":\"" + code + "\"}";//拼接驗證碼Json格式,參數名稱和消息模板中保持一致
string templateCode = "SMS_461895332";//消息模板編碼
var ret = AliMsgService.SendUserSms(phone, msg, templateCode);
}
調用阿裡雲API服務業務短端代碼:
public class AliMsgService
{
//產品名稱:雲通信簡訊API產品,開發者無需替換
const String product = "Dysmsapi";
//產品功能變數名稱,開發者無需替換
const String domain = "dysmsapi.aliyuncs.com";
// TODO 此處需要替換成開發者自己的AK(在阿裡雲訪問控制台尋找)
private static String accessKeyId = "";//AccessKey管理中查看
private static String accessKeySecret = "";//AccessKey管理中查看
/// <summary>
/// 發送消息通知
/// </summary>
/// <param name="phone">推送手機號</param>
/// <param name="msg">JSON參數</param>
/// <param name="TemplateCode">簡訊模板</param>
/// <returns></returns>
public static smsrespon SendUserSms(string phone, string msg, string TemplateCode)
{
IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultAcsClient client = new DefaultAcsClient(profile);
CommonRequest request = new CommonRequest();
request.Method = MethodType.POST;
request.Domain = domain;
request.Version = "2017-05-25";//請求版本
request.Action = "SendSms";
request.AddQueryParameters("PhoneNumbers", phone);//必填:待發送手機號。支持以逗號分隔的形式進行批量調用,批量上限為1000個手機號碼,
request.AddQueryParameters("SignName", "阿亮學習發送");//必填:簡訊簽名-可在簡訊控制臺中找到
request.AddQueryParameters("TemplateCode", TemplateCode);//必填:簡訊模板-可在簡訊控制臺中找到,發送國際/港澳台消息時,請使用國際/港澳台簡訊模版
request.AddQueryParameters("TemplateParam", msg);//"{\"code\":\"" + code + "\"}"
try
{
CommonResponse response = client.GetCommonResponse(request);
return JsonConvert.DeserializeObject<smsrespon>(response.Data);
}
catch (ServerException e)
{
return new smsrespon { Message = "阿裡雲發送驗證碼異常", Code = "no" };
}
catch (ClientException e)
{
return new smsrespon { Message = "阿裡雲發送驗證碼失敗", Code = "no" };
}
}
public class smsrespon
{
public string Message { get; set; }
public string RequestId { get; set; }
public string BizId { get; set; }
public string Code { get; set; }
}
}
四、測試驗證:
測試收到驗證碼截圖:
阿裡雲後臺數據實時數據:
源碼鏈接地址:
Gitee完整實例地址:
本文來自博客園,作者:碼農阿亮,轉載請註明原文鏈接:https://www.cnblogs.com/wml-it/p/17613232.html
技術的發展日新月異,隨著時間推移,無法保證本博客所有內容的正確性。如有誤導,請大家見諒,歡迎評論區指正!
開源庫鏈接,歡迎點亮:
GitHub:https://github.com/ITMingliang
Gitee:https://gitee.com/mingliang_it
GitLab:https://gitlab.com/ITMingliang
【編程內功修煉交流群】: 【個人公眾號】: