开源.NetCore通用工具库Xmtool使用连载 - 发送短信篇
【Github源码】
《上一篇》 介绍了Xmtool工具库中的发送邮件类库,今天我们继续为大家介绍其中的发送短信类库。
发送短信就像发送邮件一样,在软件系统中使用非常普遍,甚至比发送邮件还要常见,有些甚至是软件标配功能;例如现在的短信验证码登录、通过短信找回密码等等。
发送短信需要通过不同的额短信服务商提供的服务才可以,不同服务商提供了不同的SDK或HTTP服务,方法、参数各不相同,使用起来很不方便;系统运行上线后如果想切换一个短信发送平台,更是困难,相当于重新实现一次短信发送功能。
为了解决以上问题,本类库定义了一套标准方法,将各种短信发送平台基于标准方法进行二次封装;在使用时,无论是选用哪家的短信发送平台,都通过标准方法进行调用,使用方便,扩展维护也异常简单。
当前版本,系统实现了阿里短信和腾讯短信两个短信发送平台的二次封装,后续根据需要会持续更新。
public enum SmsProvider
{
Unset,
Alibaba, // 阿里短信平台
Tencent // 腾讯短信平台
}
使用时,需要首先获取一个短信发送对象ISmsProvider;获取对象时,需要指定短信发送平台。
获取短信发送对象后,需要使用Config方法进行配置,这是正式发送短信前必须要进行的工作。
配置完成后,用户便可以调用下面的任意一个方法进行短信发送操作,简单方便。
1. 获取短信发送对象
public static ISmsProvider Sms(SmsProvider provider)
ISmsProvider sms = Xmtool.Sms(SmsProvider.Alibaba);
// TODO
2. 配置短信发送对象
public static ISmsProvider Config(params string[] args)
ISmsProvider sms = Xmtool.Sms(SmsProvider.Alibaba);
// 阿里云短信平台配置方法
sms = sms.Config("accessKeyId(替换成自己的)", "accessKeySecret(替换成自己的)",
"阿里云短信签名(替换成自己的)", "模板编码(替换成自己的)");
/* 腾讯云短信平台
sms = sms.Config("secretId(替换成自己的)", "secretKey(替换成自己的)",
"腾讯云短信签名(替换成自己的)", "模板Id(替换成自己的)", "appId(替换成自己的)");
*/
// TODO
3. 发送短信-标准版
说明:标准版默认使用配置时指定的签名和模板进行发送。
public bool Send(string templateParam, params string[] phoneNums)
ISmsProvider sms = Xmtool.Sms(SmsProvider.Alibaba);
// 阿里云短云平台配置方法
sms = sms.Config("accessKeyId(替换成自己的)", "accessKeySecret(替换成自己的)",
"阿里云短信签名(替换成自己的)", "模板编码(替换成自己的)");
/* 腾讯云短信平台
sms = sms.Config("secretId(替换成自己的)", "secretKey(替换成自己的)",
"腾讯云短信签名(替换成自己的)", "模板Id(替换成自己的)", "appId(替换成自己的)");
*/
sms.Send("参数(替换成自己的,如:{\"code\":\"1234\"})", "136********");
4. 发送短信-自定义版
说明:自定义版可以在发送时指定签名和模板。
public bool Send2(string signName, string templateCode, string templateParam, params string[] phoneNums)
ISmsProvider sms = Xmtool.Sms(SmsProvider.Alibaba);
// 阿里云短信平台配置方法
sms = sms.Config("accessKeyId(替换成自己的)", "accessKeySecret(替换成自己的)",
"阿里云短信签名(替换成自己的)", "模板编码(替换成自己的)");
/* 腾讯云短信平台
sms = sms.Config("secretId(替换成自己的)", "secretKey(替换成自己的)",
"腾讯云短信签名(替换成自己的)", "模板Id(替换成自己的)", "appId(替换成自己的)");
*/
sms.Send("自定义签名", "自定义模板", "参数(替换成自己的,如:1234)", "136********");
*另外,同时提供了SendAsync、Send2Async等功能相同的异步方法,使用时可根据需要选择。
【Github源码】
开源.NetCore通用工具库Xmtool使用连载 - 发送短信篇的更多相关文章
- 开源.NetCore通用工具库Xmtool使用连载 - 加密解密篇
[Github源码] <上一篇>详细介绍了Xmtool工具库中的正则表达式类库,今天我们继续为大家介绍其中的加密解密类库. 在开发过程中我们经常会遇到需要对数据进行加密和解密的需求,例如密 ...
- 利用python库twilio来免费发送短信
大家好,我是四毛,最近开通了个人公众号“用Python来编程”,欢迎大家“关注”,这样您就可以收到优质的文章了. 今天跟大家分享的主题是利用python库twilio来免费发送短信. 先放一张成品图 ...
- NetCore 阿里大于发送短信
使用阿里大于API发送短信,但阿里没有提供NetCore 的API,自己看了下源码重写了发短信这个部分 public class MessageSender { private readonly st ...
- Android软件开发之发送短信与系统短信库解析
今天我和同学们讨论一下Android平台下如何调用系统方法发送短信.接收短信.系统的短信库相关的问题.进入正题,我们先使用Eclipse工具模拟给自己的模拟器发送一条短信.在Eclipse下打开DDM ...
- 使用python移动飞信模块发送短信
作者:miaoo 1.应用场景 由于自己做的一个系统需要用到发送短信到自己手机的功能,于是搜索了一下,发现了一个通过移动飞信通道发送短信开源库:PyFetion PyFetion 模拟实现了飞信的通信 ...
- 用qpython3写一个最简单的发送短信的程序
到目前为止并没有多少手机应用是用python开发的,不过qpython可以作为一个不错的玩具推荐给大家来玩. 写一个最简单的发送短信的程序,代码如下: #-*-coding:utf8;-*- #qpy ...
- android发送短信验证码并自动获取验证码填充文本框
android注册发送短信验证码并自动获取短信,截取数字验证码填充文本框. 一.接入短信平台 首先需要选择短信平台接入,这里使用的是榛子云短信平台(http://smsow.zhenzikj.com) ...
- java 短信猫发送短信的方法
用java实现短信收发的功能,目前一般项目中短信群发功能的实现方法大致有下面三种: · 1. 向运行商申请短信网关,不需要额外的设备,利用运行商提供的API调用程序发送 ...
- 个人永久性免费-Excel催化剂功能第85波-灵活便捷的批量发送短信功能(使用腾讯云接口)
微信时代的今天,短信一样不可缺席,大系统都有集成短信接口.若只是临时用一下,若能够直接在Excel上加工好内容就可以直接发送,这些假设在此篇批量群发短信功能中都为大家带来完美答案. 业务场景 不多说, ...
- 用qpython3写一个发送短信的程序
用qpython3写一个最简单的发送短信的程序 用qpython3写一个最简单的发送短信的程序到目前为止并没有多少手机应用是用python开发的,不过qpython可以作为一个不错的玩具推荐给大家来玩 ...
随机推荐
- 使用策略模式重构 if/elseif/elseif
本文翻译自国外论坛 medium,原文地址:https://medium.com/aia-sg-techblog/refactor-if-elseif-elseif-using-strategy-de ...
- Liunx常用操作(六)-压缩与解压缩(打包/解包)
liunx上面的压缩与解压缩(打包/解包)有以下几种命令可以实现 源文件001.txt 如下: 一.zip 特点:方便的与Windows之间通用 打包命令: zip 001.zip 001.txt 解 ...
- Feign拦截器和解码器
一.业务需求 在Spring Cloud的项目中,A服务使用Feign调用B服务的某个接口,如果需要传递全局认证token或参数,在方法参数里面加相应字段的方式显然是不可取的. 首先想到的是AOP方式 ...
- Git-基本介绍
- Go-数据类型-函数
函数类型 函数声明本质上是定义了函数类型的变量 package main import "fmt" // 定义了函数,本质上是在全局作用域中声明了一个函数类型的变量 info 其类 ...
- 使用JavaStream将List转为Map
有的时候博客内容会有变动,首发博客是最新的,其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址 系列文章地址 使用Java Stream将List转换为Map ...
- [转帖]SQL Server数据库重建索引、更新统计信息
https://vip.kingdee.com/article/183932?productLineId=8 SQL Server数据库有时由于长期未做索引重建,导致SQL执行效率下降,当表的索引碎片 ...
- [转帖]TLB缓存是个神马鬼,如何查看TLB miss?
https://zhuanlan.zhihu.com/p/79607142 介绍TLB之前,我们先来回顾一个操作系统里的基本概念,虚拟内存. 虚拟内存 在用户的视角里,每个进程都有自己独立的地址空间, ...
- [转帖]Oracle数据库中ITL详解
首先说明这篇文章是转载的,原文地址:http://blog.sina.com.cn/s/blog_616b428f0100lwvq.html 1.什么是ITL ITL(Interested Trans ...
- [粘贴]github-redis-rdb-cli
redis-rdb-cli A tool that can parse, filter, split, merge rdb and analyze memory usage offline. It c ...