.NET 中使用阿里云短信的 API 接口
小弟初来乍到,这也是我的第一篇文章,写的不好的地方还望指正。谢谢各位!
引言
短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码、短信通知等。(我这里只讲一个最基本的短信的发送验证码的功能)
1.欲练神功,挥刀子宫嘛。咱们先要把环境搭建好才能安心的完善功能嘛
首先必须在阿里云注册一个账号

在产品中找到短信服务,然后免费开通就行了。在开通服务之后,通过实名认证然后申请短信签名及短信模板。你需要创建一个accessKeyId的键值,注意这个值在项目中是有最高权限的。然后,咱们得去阿里的官网下载一个.dll的控件以及实例(https://help.aliyun.com/document_detail/55359.html?spm=5176.doc55288.6.564.OcWmAm)。

这两个插件需要引入到项目中去,才能使用里面的函数和变量,我就用这里面这个实例来介绍。
using System;
using System.Collections.Generic;
using System.Text;
using Aliyun.Acs.Core;
using Aliyun.Acs.Core.Exceptions;
using Aliyun.Acs.Core.Profile; using Aliyun.Acs.Dysmsapi.Model.V20170525; namespace WindowsFormsApplication4
{
static class Program
{
static void Main(string[] args)
{
String product = "Dysmsapi";//短信API产品名称
String domain = "dysmsapi.aliyuncs.com";//短信API产品域名
String accessKeyId = "";//你的accessKeyId
String accessKeySecret = "";//你的accessKeySecret IClientProfile profile = DefaultProfile.GetProfile("cn-hangzhou", accessKeyId, accessKeySecret);
//IAcsClient client = new DefaultAcsClient(profile);
// SingleSendSmsRequest request = new SingleSendSmsRequest(); DefaultProfile.AddEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
try
{
//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为20个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
request.PhoneNumbers = "";
//必填:短信签名-可在短信控制台中找到
request.SignName = "阿里云短信测试专用";
//必填:短信模板-可在短信控制台中找到
request.TemplateCode = "SMS_71135039";
//可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
request.TemplateParam = "{\"customer\":\"123\"}";
//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
request.OutId = "";
//请求失败这里会抛ClientException异常
SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
//result表示执行结果,是由阿里云返回给本地服务器的
String result = sendSmsResponse.Message;
System.Console.WriteLine(result); }
catch (ServerException e)
{
System.Console.WriteLine("Hello World!");
}
catch (ClientException e)
{
System.Console.WriteLine("Hello World!");
}
}
}
}
这里请注意,result是程序执行结束的返回值,表示的意义是程序执行的结果(OK = "成功的给指定手机号码发送了短信")。我这里把它单独放出来,就是希望如果web项目的话,可以使用这个返回值来显示程序执行状态。想象一下,如果你想写一个判断用户输入的手机号码格式是否正确的表达式需要写多少条,又要写多少 if 语句判断它的格式。这一切都是没有必要的。然后我们就可以一个一个填写这些信息就可以了。
对了,我们还需要验证码。这里我给出我使用的生成验证码的代码。来个 6 位全数字的验证码吧(最近比较流行嘛)
Random rd = new Random();
//这里生成一个 6 位数的全数字验证码
int AuthCodeNumber = rd.Next(,);
String AuthCode = AuthCodeNumber.ToString();
好了,这样就可以了。短信功能就这么实现了,这是本人的第一篇文章,希望对大家有一定帮助吧,也希望有什么地方写的不好需要改进的,都可以评论告诉我。互相进步嘛。谢谢!
.NET 中使用阿里云短信的 API 接口的更多相关文章
- Java 使用阿里云短信的API接口
亲们上午好,写的不好的地方还望指正.谢谢各位! 引言 短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等.(我这里只讲一个 ...
- ThinkPHP3.2.3框架下接入阿里云短信服务接口实现:注册登录
首先介绍下短信注册登录流程: 注册页面点击获取手机号验证码按钮,用jquery的click事件POST或GET方法把手机号发送到后台控制器: 后台控制器创建函数,收到手机号后生成随机码,例如:6位的随 ...
- 阿里云短信服务验证码封装类 - PHP
本文记录在ThinkPHP6.0中使用阿里云短信验证码,该封装类不仅仅局限于TP,拿来即用 使用该类之前必须引入 flc/dysms 扩展,该封装类就是基于这个扩展写的 composer requir ...
- 阿里云短信服务bug
接入阿里云短信服务,在springboot中写测试方法,执行到 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou ...
- THINKPHP3.2.3增加阿里云短信接口思路整理
https://help.aliyun.com/document_detail/55359.html?spm=5176.product44282.4.7.O4lc1n 阿里云短信服务地址,感冒的下载看 ...
- ThinkPHP5.0手把手实现手机阿里云短信验证
阿里云短信服务介绍阿里云短信服务就是以前的阿里大于,不过现在融合得到阿里云平台了.首先,你需要注册一个阿里云账号,这个自行解决. 仅用于测试使用官方送的代金券够用了.相关配置1.开通阿里云Access ...
- zabbix短信(阿里云短信平台)与邮件报警
环境说明 操作系统 centos7 zabbix_server zabbix 4.0.3 python 3.6.5 短信平台 阿里云短信 zabbix_server配置信息 1 [root@cp-hb ...
- python 阿里云短信群发推送
本篇文章是使用Python的Web框架Django提供发送短信接口供前端调用,Python版本2.7 阿里云入驻.申请短信服务.创建应用和模板等步骤请参考:阿里云短信服务入门 1.下载sdk 阿里云短 ...
- Python实现阿里云短信推送
本篇文章是使用Python的Web框架Django提供发送短信接口供前端调用,Python版本2.7 阿里云入驻.申请短信服务.创建应用和模板等步骤请参考:阿里云短信服务入门 1.下载sdk 阿里云短 ...
随机推荐
- sqlite初识
最近在部署PHP网站项目的时候,发现项目并没有使用传统的三大关系型数据库,而是采用了sqlite数据库,以前的时候,也见过sqlite,但是并没有深入了解其功能和用法,好奇心驱使,决定好好研究一下sq ...
- 小程序:web-view采坑指南
最近负责开发的[广州医保查询]小程序已经发布上线,其中使用web-view组件完成的[在线绑定社保卡]核心流程,遇到了一些坑,现总结如下: 首先,让我们一起看看什么是web-view ? 小程序api ...
- 用户画像,知乎Live总结
ttps://www.zhihu.com/lives/889189116527403008/messages 用户画像两层含义:单个标签:用户的分布 标签体系要与时俱进,如果标签被下游强依赖,则不轻易 ...
- Hbase的安装与测试
实验环境 虚拟机伪分布式 Ubuntu 17.10 JDK 1.8 Hadoop 2.7.6 Hbase 1.3.3 ①安装和配置HBase. 首先从官网http://archive.apache.o ...
- oracle ocp题库变化,052最新考试题及答案整理-30
30.Which is true when a database instance is shut down? A. Only transactional and normal modes wait ...
- swift 的基本类型之字符串
一:创建字符串 //字符串的创建有两种 //不可变字符串 let str = "I'm a string" //可变字符串 var string = "I'm a mut ...
- Oracle 中wmsys.wm_concat拼接字符串,结果过长报错解决
备忘:这个函数最大是4000,根据拼接列的长度,通过限制拼接条数来防止拼接字符串过长错误 --这个情况是从子表中读取出具,这里直接把它当做查询字段处理,在子表中有所有数据 select info.id ...
- 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告
一.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报 ...
- Python爬取LOL英雄皮肤
Python爬取LOL英雄皮肤 Python 爬虫 一 实现分析 在官网上找到英雄皮肤的真实链接,查看多个后发现前缀相同,后面对应为英雄的ID和皮肤的ID,皮肤的ID从00开始顺序递增,而英雄ID跟 ...
- python web开发小结
书籍 <python基础教程> <流畅的python> web框架 flask django tornado ORM sqlalchemy orator 消息队列 celery ...