小弟初來乍到,這也是我的第一篇文章,寫的不好的地方還望指正。謝謝各位!
引言
短信服務(Short Message Service)是阿里雲為用戶提供的一種通信服務的能力,支持快速發送短信驗證碼、短信通知等。(我這里只講一個最基本的短信的發送驗證碼的功能)
1.欲練神功,揮刀子宮嘛。咱們先要把環境搭建好才能安心的完善功能嘛
首先必須在阿里雲注冊一個賬號
在產品中找到短信服務,然后免費開通就行了。在開通服務之后,通過實名認證然后申請短信簽名及短信模板。你需要創建一個accessKeyId的鍵值,注意這個值在項目中是有最高權限的。然后,咱們得去阿里的官網下載一個.dll的控件以及實例(https://help.aliyun.com/document_detail/55359.html?spm=5176.doc55288.6.564.OcWmAm)。
這兩個插件需要引入到項目中去,才能使用里面的函數和變量,我就用這里面這個實例來介紹。
1 using System; 2 using System.Collections.Generic; 3 using System.Text; 4 using Aliyun.Acs.Core; 5 using Aliyun.Acs.Core.Exceptions; 6 using Aliyun.Acs.Core.Profile; 7 8 using Aliyun.Acs.Dysmsapi.Model.V20170525; 9 10 namespace WindowsFormsApplication4 11 { 12 static class Program 13 { 14 static void Main(string[] args) 15 { 16 String product = "Dysmsapi";//短信API產品名稱 17 String domain = "dysmsapi.aliyuncs.com";//短信API產品域名 18 String accessKeyId = "";//你的accessKeyId 19 String accessKeySecret = "";//你的accessKeySecret 20 21 IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret); 22 //IAcsClient client = new DefaultAcsClient(profile); 23 // SingleSendSmsRequest request = new SingleSendSmsRequest(); 24 25 DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain); 26 IAcsClient acsClient = new DefaultAcsClient(profile); 27 SendSmsRequest request = new SendSmsRequest(); 28 try 29 { 30 //必填:待發送手機號。支持以逗號分隔的形式進行批量調用,批量上限為20個手機號碼,批量調用相對於單條調用及時性稍有延遲,驗證碼類型的短信推薦使用單條調用的方式 31 request.PhoneNumbers = "13567939495"; 32 //必填:短信簽名-可在短信控制台中找到 33 request.SignName = "阿里雲短信測試專用"; 34 //必填:短信模板-可在短信控制台中找到 35 request.TemplateCode = "SMS_71135039"; 36 //可選:模板中的變量替換JSON串,如模板內容為"親愛的${name},您的驗證碼為${code}"時,此處的值為 37 request.TemplateParam = "{\"customer\":\"123\"}"; 38 //可選:outId為提供給業務方擴展字段,最終在短信回執消息中將此值帶回給調用者 39 request.OutId = "21212121211"; 40 //請求失敗這里會拋ClientException異常 41 SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request); 42 //result表示執行結果,是由阿里雲返回給本地服務器的 43 String result = sendSmsResponse.Message; 44 System.Console.WriteLine(result); 45 46 47 } 48 catch (ServerException e) 49 { 50 System.Console.WriteLine("Hello World!"); 51 } 52 catch (ClientException e) 53 { 54 System.Console.WriteLine("Hello World!"); 55 } 56 } 57 } 58 }
這里請注意,result是程序執行結束的返回值,表示的意義是程序執行的結果(OK = "成功的給指定手機號碼發送了短信")。我這里把它單獨放出來,就是希望如果web項目的話,可以使用這個返回值來顯示程序執行狀態。想象一下,如果你想寫一個判斷用戶輸入的手機號碼格式是否正確的表達式需要寫多少條,又要寫多少 if 語句判斷它的格式。這一切都是沒有必要的。然后我們就可以一個一個填寫這些信息就可以了。
對了,我們還需要驗證碼。這里我給出我使用的生成驗證碼的代碼。來個 6 位全數字的驗證碼吧(最近比較流行嘛)
1 Random rd = new Random(); 2 //這里生成一個 6 位數的全數字驗證碼 3 int AuthCodeNumber = rd.Next(100000,1000000); 4 String AuthCode = AuthCodeNumber.ToString();
好了,這樣就可以了。短信功能就這么實現了,這是本人的第一篇文章,希望對大家有一定幫助吧,也希望有什么地方寫的不好需要改進的,都可以評論告訴我。互相進步嘛。謝謝!