目录
一、前言
二、正文
三、注册开通短信服务(免费的)
四、设置短信服务参数
五、案例代码
一、前言
最近新项目要加一个阿里云的短信验证码的验证功能,以注册账号为例,之前调试过阿里大于的短信接口,但是最近阿里把阿里云短信服务换了一个地方,资料就有点对不上了,就又重新调试了一下,网上也有好多例子,但是都不全,趁着这个机会我在这里就做了一下总结:
二、正文
阿里云上有教程,为什么还要在做一下总结呢,因为阿里云官网上服务实在太多了,按照阿里云的短信流程走,半路就迷路了,实在是内容太多,不好筛选有效的信息,稍微一不留神可能就走不下去了,因此我在这里把详细的流程记录一下,以便以后再做这个功能的时候少走弯路。
三、注册开通短信服务(免费的)
注册阿里云账号,登录进去点击产品->短信服务,进入到阿里短信服务页面,往下滚动,会看到阿里云短信的文档与工具,里面就是详细的开发文档教程。
先购买短信,点击短信套餐包购买短信
点击管理控制台,进入短信服务概览页面
四、设置短信服务参数
这里已经买好了服务,点击接口调用,如果没有设置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.V0525;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 = "";//短信API产品域名(接口地址固定,无需修改)String domain = "";String accessKeyId = "LTAIe6bXXPD7zt0R";//你的accessKeyId,参考本文档步骤2String accessKeySecret = "xdhww46xZQqYORpKbbe0eK5F3u88cw";//你的accessKeySecret,参考本文档步骤2IClientProfile 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();}}
参考:/Su_wu/article/details/80090114