C# 接入阿里云短信平台
一、前言
最近新项目要加一个阿里云的短信验证码的验证功能,以注册账号为例,之前调试过阿里大于的短信接口,但是最近阿里把阿里云短信服务换了一个地方,资料就有点对不上了,就又重新调试了一下,网上也有好多例子,但是都不全,趁着这个机会我在这里就做了一下总结:
二、正文
阿里云上有教程,为什么还要在做一下总结呢,因为阿里云官网上服务实在太多了,按照阿里云的短信流程走,半路就迷路了,实在是内容太多,不好筛选有效的信息,稍微一不留神可能就走不下去了,因此我在这里把详细的流程记录一下,以便以后再做这个功能的时候少走弯路。
三、注册开通短信服务(免费的)
注册阿里云账号,登录进去点击产品->短信服务,进入到阿里短信服务页面,往下滚动,会看到阿里云短信的文档与工具,里面就是详细的开发文档教程。
先购买短信,点击短信套餐包购买短信
点击管理控制台,进入短信服务概览页面
四、设置短信服务参数
这里已经买好了服务,点击接口调用,如果没有设置AccessKey,就设置AccessKey了,点击头像,可以设置AccessKey
点击签名管理,设置签名,点击添加签名
点击模板管理,设置短信模板,点击添加短信模板
五、案例代码
按照要求创建完成以后,我们准备工作就全部搞定了,然后就是实际运行测试了,下载官方demo,这里就不详细说怎么测试了,直接给大家上代码,代码里面只需要替换下面几个值就可以完美运行了,我测试过,demo没有问题。
Message.aspx
<asp:Button ID="Button1" runat="server" Text="点击发送短信" onclick="Button1_Click"/>
Message.aspx.cs

using Aliyun.Acs.Core; using Aliyun.Acs.Core.Exceptions; using Aliyun.Acs.Core.Profile; using Aliyun.Acs.Dysmsapi.Model.V20170525; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class LJWY_TEST_Message : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //sendMessage(); } } public void sendMessage() { String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改) //String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改) String domain = "dysmsapi.aliyuncs.com"; String accessKeyId = "LTAIe6bXXPD7zt0R";//你的accessKeyId,参考本文档步骤2 String accessKeySecret = "xdhww46xZQqYORpKbbe0eK5F3u88cw";//你的accessKeySecret,参考本文档步骤2 IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret); //IAcsClient client = new DefaultAcsClient(profile); // SingleSendSmsRequest request = new SingleSendSmsRequest(); //初始化ascClient,暂时不支持多region(请勿修改) DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain); IAcsClient acsClient = new DefaultAcsClient(profile); SendSmsRequest request = new SendSmsRequest(); try { //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式,发送国际/港澳台消息时,接收号码格式为00+国际区号+号码,如“0085200000000” request.PhoneNumbers = "15900518574"; //必填:短信签名-可在短信控制台中找到 request.SignName = "昊慧"; //必填:短信模板-可在短信控制台中找到,发送国际/港澳台消息时,请使用国际/港澳台短信模版 request.TemplateCode = "SMS_139242809"; //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为 //request.TemplateParam = "{\"name\":\"Tom\", \"code\":\"123\"}"; //request.TemplateParam = "{\"code\":\"123\"}"; request.TemplateParam = "{\"code\":\""+getRandom()+"\"}"; //request.TemplateParam = "您正在申请注册,验证码为:${code},5分钟内有效!"; //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者 request.OutId = "123"; //请求失败这里会抛ClientException异常 SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request); //System.Console.WriteLine(sendSmsResponse.Message); } catch (ServerException e) { string result = e.Message; //System.Console.WriteLine("Hello World!"); } catch (ClientException e) { string result = e.Message; //System.Console.WriteLine("Hello World!"); } } public string getRandom() { Random rd = new Random(); //这里生成一个 6 位数的全数字验证码 int AuthCodeNumber = rd.Next(100000, 1000000); String AuthCode = AuthCodeNumber.ToString(); return AuthCode; } protected void Button1_Click(object sender, EventArgs e) { sendMessage(); } }
————————————————
原文链接:https://blog.csdn.net/benben513624/article/details/82252116