C# 调用阿里云.net sdk 发送短信

时间:2024-03-01 18:59:02

1- 阿里云短信服务文档使用指引 ,阅读文档了解大致流程 (注册阿里云账号,开通短息服务获取AccessKey,创建签名和模板)

   

2-  RAM控制台   创建RAM 用户 ==> 在该用户下创建用户 AccessKey ==》 接口配置(给该用户添加功能权限)  (入驻阿里云,开通短信服务篇幅有限就不列出来了)

 

 

 创建时 上面编程访问 要勾选 ,创建完之后返回用户列表点击你刚才创建的用户名进入详情,开始创建用户 AccessKey 以及配置权限

 

 列表里面的AccessKeyID,secret(首次创建时会得到,阿里云不会保留 不提供查询接口,忘记的话就只能删除在重建了)后面程序会用到。

 

 短息服务目前只需要加这两个权限就可以了。

 

3- 去 短信服务管理控制台  创建签名和模板管理。

 

 补充:添加国内短信模板指引

 

 签名管理列表里面的签名名称以及模板管理里面的模板Code都是后面程序需要添加的参数。

 

 

4. 最后编写代码:  SDK Demo

 

 

 

5- 最后贴上我自己参考的SDK写的代码:

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


     //阿里云app配置 private static readonly IClientProfile profile = DefaultProfile.GetProfile( "cn-hangzhou", //地域ID "xxxxxx", //RAM账号的AccessKey ID "xxxxxxx");//RAM账号的AccessKey Secret         //模板中的参数 public class TemplatePay { public string xxx{ get; set; } public decimal xxx{ get; set; } public decimal xxx{ get; set; } }           //结果接收类 public class responseJson { public string Message { get; set; } public string RequestId { get; set; } public string BizId { get; set; } public string Code { get; set; } }     /// <summary> /// 通过阿里云发送短信 /// </summary> /// <param name="phoneNumber"></param> /// <param name="SignName"></param> /// <param name="templateCode"></param> /// <param name="jsonTemplateParam">序列化后的短信模板参数</param> /// <returns></returns> public static bool SendAliyunMessage(string phoneNumber,string signName,string templateCode, string jsonTemplateParam) { 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.AddQueryParameters("TemplateCode", templateCode);//模板code (步骤3 签名管理中的模板CODE) request.AddQueryParameters("PhoneNumbers", phoneNumber);//电话号码 request.AddQueryParameters("SignName", signName);//信息签名 (步骤3 签名管理中的签名名称) request.AddQueryParameters("TemplateParam", jsonTemplateParam);//模板中的参数 (模板中所有参数定义为一个类,复制后进行序列化传进去 //发送短信 CommonResponse response = client.GetCommonResponse(request); var result = JsonConvert.DeserializeObject<responseJson>(response.Data); return result.Code.Equals("OK");     }

补充一下:代码需引用阿里云.net sdk,官网文档是直接在VS控制台输入命令,我自己是在nuget直接进行安装。

 

 

原创不易,转载请注明出处。