**步驟 1 創建阿里云賬號**
為了訪問短信服務,您需要有一個阿里云賬號。如果沒有,可首先按照如下步驟創建阿里云賬號:
訪問阿里云 [官方網站](https://www.aliyun.com/?spm=a2c4g.11174450.3.1.129c7d0f9W4Acp),單擊頁面上的 免費注冊 按鈕。
按照屏幕提示完成注冊流程并進行實名認證,短信服務只支持實名認證用戶使用。為了更好地使用阿里云服務,建議盡快完成實名認證,否則部分阿里云服務將無法使用。具體實名認證流程,請參考 [這里](https://help.aliyun.com/knowledge_detail/37171.html?spm=a2c4g.11174450.3.2.129c7d0f9W4Acp)。
**步驟 2 獲取阿里云訪問密鑰**
為了使用短信發送API-NET SDK,您必須申請阿里云的訪問密鑰。
阿里云訪問秘鑰是阿里云為用戶使用 API(非控制臺)來訪問其云資源設計的“安全口令”。您可以用它來簽名 API 請求內容以通過服務端的安全驗證。
該訪問秘鑰成對(AccessKeyId 與 AccessKeySecret)生成和使用。每個阿里云用戶可以創建多對訪問秘鑰,且可隨時啟用(Active)、禁用(Inactive)或者刪除已經生成的訪問秘鑰對。
您可以通過阿里云控制臺的 [秘鑰管理頁面](https://ak-console.aliyun.com/?spm=a2c4g.11174450.3.3.129c7d0f9W4Acp#/accesskey) 創建、管理所有的訪問秘鑰對,且保證它處于“啟用”狀態。由于訪問秘鑰是阿里云對 API 請求進行安全驗證的關鍵因子,請妥善保管你的訪問秘鑰。如果某些秘鑰對出現泄漏風險,建議及時刪除該秘鑰對并生成新的替代秘鑰對。
**步驟 3 在控制臺完成模板與簽名的申請,獲得調用接口必備的參數**
**短信簽名**
根據用戶屬性來創建符合自身屬性的簽名信息。企業用戶需要上傳相關企業資質證明,個人用戶需要上傳證明個人身份的證明。
短信簽名需要審核通過后才可以使用。
**短信模板**
短信模板,即具體發送的短信內容。
短信模板可以支持驗證碼、短信通知、推廣短信、國際/港澳臺消息四種模式。驗證碼和短信通知,通過變量替換實現個性短信定制。推廣短信不支持在模板中添加變量。國際/港澳臺消息只能使用國際/港澳臺短信模版發送短信。
短信模板需要審核通過后才可以使用。
**為了成功發送一條短信通知,您至少需要完成以下步驟**
一、在控制臺完成短信簽名與短信模板的申請,獲得調用接口必備的參數
在“短信簽名”頁面完成簽名的申請,獲得短信簽名的字符串 [簽名申請手冊](https://help.aliyun.com/document_detail/55327.html?spm=a2c4g.11174450.3.4.129c7d0f9W4Acp)
在“短信模板”頁面完成模板的申請,獲得模板ID。[模板申請手冊](https://help.aliyun.com/document_detail/55330.html?spm=a2c4g.11174450.3.5.129c7d0f9W4Acp)
**參數
入參列表**

**出參列表**

**技術對接步驟**
**1:下載SDK工具包**
1、sdk工具包在解壓后可以找到 aliyun-net-sdk-core.dll 和 aliyun-net-sdk-dysmsapi.dll 這兩個文件。( net3.5和net2.0的用戶請使用/api_demo/net2.0目錄下的;core2.0的用戶請使用、api_demo/core2.0/目錄下的)
2、在您的 Visual Studio 上右鍵點擊 項目,再單擊 添加引用 > 瀏覽(如果您用的是 MonoDevelop,請按照導入 DLL 的相應方法導入這個 .dll 文件),選擇以上 .dll 文件,單擊 確定 按鈕。您就可以在工程中使用阿里云云通信短信服務的 C# SDK 了。
SDK&DEMO[【下載地址】](http://alicom-fc-media.cn-hangzhou.oss.aliyun-inc.com/ytxsdk/dysmsapi_demo_sdk__net.zip?spm=a2c4g.11186623.2.8.1e1763caOAyTTj&Expires=1859777142&OSSAccessKeyId=bypFNbGJVk73PsLI&Signature=gD%2FUuFJbFljYPrYioduio6w3QZE%3D)
**2: 編寫樣例程序**
~~~
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Core.Profile;
using Aliyun.Acs.Dysmsapi.Model.V20170525;
using System;
namespace NetWing.Common.Ali
{
public static class SMSSend
{
static String product = "Dysmsapi";//短信API產品名稱
static String domain = "dysmsapi.aliyuncs.com";//短信API產品域名
static String accessId = ConfigHelper.GetValue("AccessKeyId");
static String accessSecret = ConfigHelper.GetValue("AccessKeySecret");
static String regionIdForPop = "cn-hangzhou";
/// <summary>
/// 發送短信接口
/// </summary>
/// <param name="PhoneNumbers">必須 短信接收號碼,支持以逗號分隔的形式進行批量調用,批量上限為1000個手機號碼</param>
/// <param name="SignName">必須 短信簽名</param>
/// <param name="TemplateCode">必須 短信模板ID,發送國際/港澳臺消息時,請使用國際/港澳臺短信模版</param>
/// <param name="TemplateParam">必須 短信模板變量替換JSON串</param>
/// <param name="SmsUpExtendCode">可選 上行短信擴展碼,無特殊需要此字段的用戶請忽略此字段</param>
/// <param name="OutId">可選 外部流水擴展字段</param>
/// <returns></returns>
public static bool send(string PhoneNumbers, string SignName, string TemplateCode, string TemplateParam, string SmsUpExtendCode = "90999", string OutId = "abcdefgh")
{
IClientProfile profile = DefaultProfile.GetProfile(regionIdForPop, accessId, accessSecret);
DefaultProfile.AddEndpoint(regionIdForPop, regionIdForPop, product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
try
{
request.PhoneNumbers = PhoneNumbers;
request.SignName = SignName;
request.TemplateCode = TemplateCode;
request.TemplateParam = TemplateParam;
request.OutId = OutId;
//請求失敗這里會拋ClientException異常
SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
if (sendSmsResponse.Code == "OK")
{
return true;
}
else
{
CWriteLogs.WriteLogsE("SMS_Logs", "Error >> " + sendSmsResponse.Message, "請求號碼:" + PhoneNumbers);
return false;
}
}
catch (ServerException e)
{
CWriteLogs.WriteLogsE("SMS_Logs", "Error >> " + e.Message, "請求號碼:" + PhoneNumbers);
return false;
}
catch (ClientException e)
{
CWriteLogs.WriteLogsE("SMS_Logs", "Error >> " + e.Message, "請求號碼:" + PhoneNumbers);
return false;
}
}
}
}
~~~