翼度科技»论坛 编程开发 .net 查看内容

开源.NetCore通用工具库Xmtool使用连载 - 发送短信篇

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
【Github源码】


《上一篇》 介绍了Xmtool工具库中的发送邮件类库,今天我们继续为大家介绍其中的发送短信类库。

发送短信就像发送邮件一样,在软件系统中使用非常普遍,甚至比发送邮件还要常见,有些甚至是软件标配功能;例如现在的短信验证码登录、通过短信找回密码等等。发送短信需要通过不同的额短信服务商提供的服务才可以,不同服务商提供了不同的SDK或HTTP服务,方法、参数各不相同,使用起来很不方便;系统运行上线后如果想切换一个短信发送平台,更是困难,相当于重新实现一次短信发送功能。
为了解决以上问题,本类库定义了一套标准方法,将各种短信发送平台基于标准方法进行二次封装;在使用时,无论是选用哪家的短信发送平台,都通过标准方法进行调用,使用方便,扩展维护也异常简单。
当前版本,系统实现了阿里短信和腾讯短信两个短信发送平台的二次封装,后续根据需要会持续更新。
  1. public enum SmsProvider
  2. {
  3.     Unset,
  4.     Alibaba,        // 阿里短信平台
  5.     Tencent        // 腾讯短信平台
  6. }
复制代码
使用时,需要首先获取一个短信发送对象ISmsProvider;获取对象时,需要指定短信发送平台。
获取短信发送对象
获取短信发送对象后,需要使用Config方法进行配置,这是正式发送短信前必须要进行的工作。
配置短信发送对象
配置完成后,用户便可以调用下面的任意一个方法进行短信发送操作,简单方便。
发送短信-标准版
发送短信-自定义版
1. 获取短信发送对象

public static ISmsProvider Sms(SmsProvider provider)
  1. ISmsProvider sms = Xmtool.Sms(SmsProvider.Alibaba);
  2. // TODO
复制代码
2. 配置短信发送对象

public static ISmsProvider Config(params string[] args)
  1. ISmsProvider sms = Xmtool.Sms(SmsProvider.Alibaba);
  2. // 阿里云短信平台配置方法
  3. sms = sms.Config("accessKeyId(替换成自己的)", "accessKeySecret(替换成自己的)",
  4.                 "阿里云短信签名(替换成自己的)", "模板编码(替换成自己的)");
  5. /* 腾讯云短信平台
  6. sms = sms.Config("secretId(替换成自己的)", "secretKey(替换成自己的)",
  7.                 "腾讯云短信签名(替换成自己的)", "模板Id(替换成自己的)", "appId(替换成自己的)");
  8. */
  9. // TODO
复制代码
3. 发送短信-标准版

说明:标准版默认使用配置时指定的签名和模板进行发送。

public bool Send(string templateParam, params string[] phoneNums)
  1. ISmsProvider sms = Xmtool.Sms(SmsProvider.Alibaba);
  2. // 阿里云短云平台配置方法
  3. sms = sms.Config("accessKeyId(替换成自己的)", "accessKeySecret(替换成自己的)",
  4.                 "阿里云短信签名(替换成自己的)", "模板编码(替换成自己的)");
  5. /* 腾讯云短信平台
  6. sms = sms.Config("secretId(替换成自己的)", "secretKey(替换成自己的)",
  7.                 "腾讯云短信签名(替换成自己的)", "模板Id(替换成自己的)", "appId(替换成自己的)");
  8. */
  9. sms.Send("参数(替换成自己的,如:{"code":"1234"})", "136********");
复制代码
4. 发送短信-自定义版

说明:自定义版可以在发送时指定签名和模板。

public bool Send2(string signName, string templateCode, string templateParam, params string[] phoneNums)
  1. ISmsProvider sms = Xmtool.Sms(SmsProvider.Alibaba);
  2. // 阿里云短信平台配置方法
  3. sms = sms.Config("accessKeyId(替换成自己的)", "accessKeySecret(替换成自己的)",
  4.                 "阿里云短信签名(替换成自己的)", "模板编码(替换成自己的)");
  5. /* 腾讯云短信平台
  6. sms = sms.Config("secretId(替换成自己的)", "secretKey(替换成自己的)",
  7.                 "腾讯云短信签名(替换成自己的)", "模板Id(替换成自己的)", "appId(替换成自己的)");
  8. */
  9. sms.Send("自定义签名", "自定义模板", "参数(替换成自己的,如:1234)", "136********");
复制代码
*另外,同时提供了SendAsync、Send2Async等功能相同的异步方法,使用时可根据需要选择。


【Github源码】


来源:https://www.cnblogs.com/bcbr/archive/2023/05/31/17447376.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具