C# 使用阿里云发送短信

  最近有个项目,短信服务使用的是阿里云的,由于时间问题,没有手动去构造sign去发送,而是直接使用阿里云的SDK发送,所以这里算是做个笔记,或许以后还能用得到

  首先,我们需要安装阿里云的SDK,推荐使用nuget安装,搜索aliyun-net-sdk-core,直接按照即可

  

 

 

   安装完成之后就可以使用了,代码如下:  

using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Http;
using Aliyun.Acs.Core.Profile;
using System;

namespace DemoConsole2
{
    class Program
    {
        static void Main(string[] args)
        {
            IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", "<accessKeyId>", "<accessSecret>");
            DefaultAcsClient client = new DefaultAcsClient(profile);
            CommonRequest request = new CommonRequest();
            request.Method = MethodType.POST;
            request.Domain = "dysmsapi.aliyuncs.com";
            request.Version = "2017-05-25";
            request.Action = "SendSms";
            // request.Protocol = ProtocolType.HTTP;

            request.AddQueryParameters("PhoneNumbers", "185XXXXXXXX");
            request.AddQueryParameters("SignName", "签名");
            request.AddQueryParameters("TemplateCode", "SMS_176375688");
            request.AddQueryParameters("TemplateParam", "{\"code\":\"074281\"}");
            request.AddQueryParameters("OutId", "");

            try
            {
                CommonResponse response = client.GetCommonResponse(request);
                var content = System.Text.Encoding.Default.GetString(response.HttpResponse.Content);
                Console.WriteLine(content);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
    }
}
View Code

  注意,其中参数要用AddQueryParameters方法,因为参数是放在QueryString中携带过去的,具体可以使用哪些参数可以参考阿里云的开发文档:https://help.aliyun.com/document_detail/101414.html?spm=a2c4g.11186623.6.616.74665f30I95HSl

  其中accessKeyId和accessSecret可以在阿里云上查看,如下图

  

 

 

   签名和模板Code需要申请和审核,如下图

 

   

posted @ 2019-10-28 11:42  没有星星的夏季  阅读(2673)  评论(0编辑  收藏  举报