Pārlūkot izejas kodu

1.SendSms改为异步。2.新增阿里云发送短信模板方法AliyunSendSmsTemplate。

公司职务微信QQ领英 1 gadu atpakaļ
vecāks
revīzija
d937572da7

+ 39 - 2
Admin.NET/Admin.NET.Core/Service/Message/SysSmsService.cs

@@ -1,4 +1,4 @@
-// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
+// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
 //
 //
 // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
 // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
 //
 //
@@ -73,7 +73,7 @@ public class SysSmsService : IDynamicApiController, ITransient
             TemplateParam = templateParam.ToString(), // 模板中的变量替换JSON串
             TemplateParam = templateParam.ToString(), // 模板中的变量替换JSON串
             OutId = YitIdHelper.NextId().ToString()
             OutId = YitIdHelper.NextId().ToString()
         };
         };
-        var sendSmsResponse = client.SendSms(sendSmsRequest);
+        var sendSmsResponse = await client.SendSmsAsync(sendSmsRequest);
         if (sendSmsResponse.Body.Code == "OK" && sendSmsResponse.Body.Message == "OK")
         if (sendSmsResponse.Body.Code == "OK" && sendSmsResponse.Body.Message == "OK")
         {
         {
             // var bizId = sendSmsResponse.Body.BizId;
             // var bizId = sendSmsResponse.Body.BizId;
@@ -87,6 +87,43 @@ public class SysSmsService : IDynamicApiController, ITransient
         await Task.CompletedTask;
         await Task.CompletedTask;
     }
     }
 
 
+    /// <summary>
+    /// 发送短信模板
+    /// </summary>
+    /// <param name="phoneNumber"></param>
+    /// <param name="templateParam"></param>
+    /// <returns></returns>
+    [AllowAnonymous]
+    [DisplayName("发送短信模板")]
+    public async Task AliyunSendSmsTemplate([Required] string phoneNumber, [Required] dynamic templateParam)
+    {
+        if (!phoneNumber.TryValidate(ValidationTypes.PhoneNumber).IsValid)
+            throw Oops.Oh("请正确填写手机号码");
+        if (string.IsNullOrWhiteSpace(templateParam.ToString()))
+        {
+            throw Oops.Oh("短信内容不能为空");
+        }
+        var client = CreateAliyunClient();
+        var sendSmsRequest = new SendSmsRequest
+        {
+            PhoneNumbers = phoneNumber, // 待发送手机号, 多个以逗号分隔
+            SignName = _smsOptions.Aliyun.SignName, // 短信签名
+            TemplateCode = _smsOptions.Aliyun.TemplateCode, // 短信模板
+            TemplateParam = templateParam.ToString(), // 模板中的变量替换JSON串
+            OutId = YitIdHelper.NextId().ToString()
+        };
+        var sendSmsResponse = await client.SendSmsAsync(sendSmsRequest);
+        if (sendSmsResponse.Body.Code == "OK" && sendSmsResponse.Body.Message == "OK")
+        {
+        }
+        else
+        {
+            throw Oops.Oh($"短信发送失败:{sendSmsResponse.Body.Code}-{sendSmsResponse.Body.Message}");
+        }
+
+        await Task.CompletedTask;
+    }
+
     /// <summary>
     /// <summary>
     /// 腾讯云发送短信 📨
     /// 腾讯云发送短信 📨
     /// </summary>
     /// </summary>