专栏首页magicodesMagicodes.Sms短信库的封装和集成

Magicodes.Sms短信库的封装和集成

简介

Magicodes.Sms是心莱团队封装的短信服务库,已提供Abp模块的封装。

Nuget

新的包

名称

说明

Nuget

Magicodes.Sms.Aliyun

阿里云短信库

Magicodes.Sms.Core

短信核心库

Magicodes.Sms.Aliyun.Abp

阿里云短信Abp模块

开始使用

如果使用Abp相关模块,则使用起来比较简单,具体您可以参考相关单元测试的编写。主要有以下步骤:

  1. 引用对应的Nuget包 如:

名称

说明

Nuget

Magicodes.Sms.Aliyun.Abp

阿里云短信Abp模块

  1. 添加模块依赖 在对应工程的Abp的模块(AbpModule)中,添加对“AliyunSmsModule”的依赖,如:
  [DependsOn(typeof(AliyunSmsModule))]
  1. 配置

默认支持两种配置方式,配置文件和SettingManager。下面以配置文件为例,格式为:

{
  "AliyunSmsSettings": {
    "AccessKeyId": "",
    "AccessKeySecret": "",
    "SignName": "",
    "TemplateCode": ""
  }
}
  1. 使用短信API

通过容器获得ISmsTemplateSender,然后调用发送方法即可。如单元测试中:

 private readonly ISmsTemplateSender _smsTemplateSender;

        public SmsTest()
        {
            this._smsTemplateSender = Resolve<ISmsTemplateSender>();
        }

        [Theory]
        [InlineData("1367197xxxx", "1234")]
        public async Task SendCodeAsync(string phone, string code)
        {
            await _smsTemplateSender.SmsService.SendCodeAsync(phone, code);
        }

非ABP集成

配置

AliyunSmsBuilder.Create()
//设置日志记录
            .WithLoggerAction((tag, message) =>
            {
                Console.WriteLine(string.Format("Tag:{0}\tMessage:{1}", tag, message));
            }).SetSettingsFunc(() =>
            {
//TODO:请自行配置自己的配置
//如果是一个项目多个配置,请使用key来获取相关配置
return ConfigHelper.LoadConfig("aliyun_app");
            }).Build();

阿里云短信发送

[Theory(DisplayName = "短信发送测试")]
    [InlineData("你的手机号码", "验证码")]
public async Task SendCodeAsync_Test(string phone, string code)
    {
var smsService = new AliyunSmsService();
var result = await smsService.SendCodeAsync(phone, code);
        result.Success.ShouldBeTrue();
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • EXT.NET复杂布局(四)——系统首页设计(下)

    注意beforedestroy事件,这个事件可以在窗口关闭后通知你,有了这个通知事件,想干啥都方便了。在示例中,本人是显示消息。

    雪雁-心莱科技
  • 使用MONO在MAC OS上开发——同步日志(二)

    上一篇使用MONO在MAC OS上开发——同步日志(一)讲述了在MAC OS读取配置文件以及写日志,那么只算是完成了基本的配置,下面的才是重点。

    雪雁-心莱科技
  • 开源库Magicodes.WeChat.SDK总体介绍

    本篇主要对MAGICODES.WECHAT.SDK进行简单总体的介绍。通过本篇教程,您可以对Magicodes.WeChat.SDK进行一个全面的了解。

    雪雁-心莱科技
  • 游戏服务器之数据存档(应用数据引擎redis)

    游戏服务器之数据存档:把逻辑服务器的角色数据存档到mysql和redis,分析的是较早前的一个游戏项目的存档处理。有些设计缺点,会提出优化方式。 设计上: 逻辑...

    李海彬
  • C#用链式方法表达循环嵌套1

    情节故事得有情节,不喜欢情节的朋友可看第1版代码,然后直接跳至“三.想要链式写法” 一.起缘 故事缘于一位朋友的一道题: 朋友四人玩LOL游戏。第一局,分别选择...

    逸鹏
  • 如何做人力资源数据分析专业报告PPT

    在做人力资源数据分析中,最后的一个环节我们是要输出 数据分析的报告,这个也是数据分析最重要的一个环节,今天我们来聊聊如果做数据分析报告 PPT版本

    王佩军
  • golang 堆排序

    地球流浪猫
  • 【Andorid源码解析】View.post() 到底干了啥

    emmm,大伙都知道,子线程是不能进行 UI 操作的,或者很多场景下,一些操作需要延迟执行,这些都可以通过 Handler 来解决。但说实话,实在是太懒了,总感...

    请叫我大苏
  • 网络爬虫之投票

    一、前言        在你心中什么是网络爬虫?在网线里钻来钻去的小虫?先看一下百度百科的解释: 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,...

    魏守峰
  • C#连接数据库不安装Oracle客户端

    Oracle提供了这样的Oracle.ManagedDataAccess.dll,让用可以需要安装Oracle客户端即可连接数据库,并且不区分32位...

    _一级菜鸟

扫码关注云+社区

领取腾讯云代金券