【ASP.NET】20.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/Su_wu/article/details/80090114

 

 

 

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值