C# 调用阿里云.net sdk 发送短信
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直接进行安装。
原创不易,转载请注明出处。