Browse Source

Merge pull request #1371 from colinin/aliyun-sms

feat(aliyun): Optimize Alibaba Cloud SMS
pull/1377/head
yx lin 3 months ago
committed by GitHub
parent
commit
bbaa145035
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 6
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingAppService.cs
  2. 20
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Localization/Resources/en.json
  3. 18
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Localization/Resources/zh-Hans.json
  4. 4
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Settings/AliyunSettingNames.cs
  5. 16
      aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Settings/AliyunSettingProvider.cs
  6. 11
      aspnet-core/framework/common/LINGYUN.Abp.Sms.Aliyun/LINGYUN/Abp/Sms/Aliyun/AliyunSmsSender.cs
  7. 20
      aspnet-core/framework/common/LINGYUN.Abp.Sms.Aliyun/LINGYUN/Abp/Sms/Aliyun/Localization/Resources/en.json
  8. 20
      aspnet-core/framework/common/LINGYUN.Abp.Sms.Aliyun/LINGYUN/Abp/Sms/Aliyun/Localization/Resources/zh-Hans.json

6
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun.SettingManagement/LINGYUN/Abp/Aliyun/SettingManagement/AliyunSettingAppService.cs

@ -154,6 +154,12 @@ public class AliyunSettingAppService : ApplicationService, IAliyunSettingAppServ
providerName);
var smsVerifyCodeSetting = aliyunSettingGroup.AddSetting(L["DisplayName:Aliyun.SmsVerifyCode"], L["Description:Aliyun.SmsVerifyCode"]);
smsVerifyCodeSetting.AddDetail(
await SettingDefinitionManager.GetAsync(AliyunSettingNames.SmsVerifyCode.Domain),
StringLocalizerFactory,
await SettingManager.GetOrNullAsync(AliyunSettingNames.SmsVerifyCode.Domain, providerName, providerKey),
ValueType.String,
providerName);
smsVerifyCodeSetting.AddDetail(
await SettingDefinitionManager.GetAsync(AliyunSettingNames.SmsVerifyCode.DefaultSignName),
StringLocalizerFactory,

20
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Localization/Resources/en.json

@ -31,24 +31,6 @@
"DisplayName:DurationSeconds": "Duration Seconds,in seconds",
"Description:DurationSeconds": "Duration Seconds,in seconds",
"DisplayName:Policy": "Policy",
"Description:Policy": "Policy",
"DisplayName:Aliyun.Sms": "Sms",
"Description:Aliyun.Sms": "Sms",
"DisplayName:Aliyun.SmsVerifyCode": "Sms Verify Code",
"Description:Aliyun.SmsVerifyCode": "Sms Verify Code",
"DisplayName:ActionName": "Action Name",
"Description:ActionName": "Action Name",
"DisplayName:DefaultSignName": "Default Sign Name",
"Description:DefaultSignName": "Default Sign Name",
"DisplayName:DefaultTemplateCode": "Default Template Code",
"Description:DefaultTemplateCode": "Default Template Code",
"DisplayName:DefaultPhoneNumber": "Default Phone Number",
"Description:DefaultPhoneNumber": "Default Phone Number",
"DisplayName:Domain": "Domain",
"Description:Domain": "Domain",
"DisplayName:Version": "Version",
"Description:Version": "Version",
"DisplayName:VisableErrorToClient": "Visable Error To Client",
"Description:VisableErrorToClient": "Visable Error To Client"
"Description:Policy": "Policy"
}
}

18
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Localization/Resources/zh-Hans.json

@ -32,24 +32,6 @@
"Description:DurationSeconds": "过期时间最小值为900秒,默认3600秒",
"DisplayName:Policy": "权限策略",
"Description:Policy": "生成STS Token时可以指定一个额外的权限策略,以进一步限制STS Token的权限",
"DisplayName:Aliyun.Sms": "短信服务",
"Description:Aliyun.Sms": "阿里云短信服务",
"DisplayName:Aliyun.SmsVerifyCode": "短信认证服务",
"Description:Aliyun.SmsVerifyCode": "阿里云短信认证服务",
"DisplayName:ActionName": "发送短信方法",
"Description:ActionName": "发送短信方法名称,详情见阿里云Sms服务",
"DisplayName:DefaultSignName": "默认短信签名",
"Description:DefaultSignName": "当用户未指定短信签名时的默认签名名称",
"DisplayName:DefaultTemplateCode": "默认短信模板号",
"Description:DefaultTemplateCode": "当用户未指定短信签名时的默认短信模板号",
"DisplayName:DefaultPhoneNumber": "默认接收短信手机号",
"Description:DefaultPhoneNumber": "当用户未指定短信接收方时的默认接收手机号码",
"DisplayName:Domain": "阿里云sms服务域名",
"Description:Domain": "阿里云sms服务域名",
"DisplayName:Version": "阿里云sms服务版本号",
"Description:Version": "阿里云sms服务版本号",
"DisplayName:VisableErrorToClient": "发送错误到客户端",
"Description:VisableErrorToClient": "当短信服务发送出现错误时是否发送错误详情到客户端",
"Region:HangZhou": "华东1(杭州)",
"Region:ShangHai": "华东2(上海)",
"Region:NanJing": "华东5(南京-本地地域)",

4
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Settings/AliyunSettingNames.cs

@ -87,6 +87,10 @@ public static class AliyunSettingNames
{
public const string Prefix = AliyunSettingNames.Prefix + ".SmsVerifyCode";
/// <summary>
/// 阿里云号码认证服务域名
/// </summary>
public const string Domain = Prefix + ".Domain";
/// <summary>
/// 默认签名
/// </summary>
public const string DefaultSignName = Prefix + ".DefaultSignName";

16
aspnet-core/framework/cloud-aliyun/LINGYUN.Abp.Aliyun/LINGYUN/Abp/Aliyun/Settings/AliyunSettingProvider.cs

@ -170,8 +170,8 @@ public class AliyunSettingProvider : SettingDefinitionProvider
new SettingDefinition(
AliyunSettingNames.Sms.Domain,
defaultValue: "dysmsapi.aliyuncs.com",
displayName: L("DisplayName:Domain"),
description: L("Description:Domain"),
displayName: L("DisplayName:SmsDomain"),
description: L("Description:SmsDomain"),
isVisibleToClients: false
)
.WithProviders(
@ -210,6 +210,18 @@ public class AliyunSettingProvider : SettingDefinitionProvider
{
return new SettingDefinition[]
{
new SettingDefinition(
AliyunSettingNames.SmsVerifyCode.Domain,
defaultValue: "dypnsapi.aliyuncs.com",
displayName: L("DisplayName:SmsVerifyCodeDomain"),
description: L("Description:SmsVerifyCodeDomain"),
isVisibleToClients: false
)
.WithProviders(
DefaultValueSettingValueProvider.ProviderName,
ConfigurationSettingValueProvider.ProviderName,
GlobalSettingValueProvider.ProviderName,
TenantSettingValueProvider.ProviderName),
new SettingDefinition(
AliyunSettingNames.SmsVerifyCode.DefaultSignName,
displayName: L("DisplayName:DefaultSignName"),

11
aspnet-core/framework/common/LINGYUN.Abp.Sms.Aliyun/LINGYUN/Abp/Sms/Aliyun/AliyunSmsSender.cs

@ -54,11 +54,15 @@ public class AliyunSmsSender : ISmsSender, IAliyunSmsVerifyCodeSender
if (smsMessage.Properties.ContainsKey("SmsVerifyCode") &&
smsMessage.Properties.TryGetValue("code", out var code))
{
smsMessage.Properties.TryGetValue("SignName", out var signName);
smsMessage.Properties.TryGetValue("TemplateCode", out var templateCode);
// 调用短信验证码服务
await SendAsync(
new SmsVerifyCodeMessage(
smsMessage.PhoneNumber,
new SmsVerifyCodeMessageParam(code.ToString(), "5")));
new SmsVerifyCodeMessageParam(code.ToString(), "5"),
signName?.ToString(),
templateCode?.ToString()));
return;
}
@ -116,15 +120,15 @@ public class AliyunSmsSender : ISmsSender, IAliyunSmsVerifyCodeSender
AliyunFeatureNames.Sms.DefaultSendLimitInterval)]
public async virtual Task SendAsync(SmsVerifyCodeMessage message)
{
var domain = await SettingProvider.GetOrNullAsync(AliyunSettingNames.Sms.Domain);
var version = await SettingProvider.GetOrNullAsync(AliyunSettingNames.Sms.Version);
var domain = await SettingProvider.GetOrNullAsync(AliyunSettingNames.SmsVerifyCode.Domain);
var signName = message.SignName ??
await SettingProvider.GetOrNullAsync(AliyunSettingNames.SmsVerifyCode.DefaultSignName);
var templateCode = message.TemplateCode ??
await SettingProvider.GetOrNullAsync(AliyunSettingNames.SmsVerifyCode.DefaultTemplateCode);
Check.NotNullOrWhiteSpace(domain, AliyunSettingNames.Sms.Domain);
Check.NotNullOrWhiteSpace(version, AliyunSettingNames.Sms.Version);
Check.NotNullOrWhiteSpace(domain, AliyunSettingNames.SmsVerifyCode.Domain);
Check.NotNullOrWhiteSpace(signName, AliyunSettingNames.SmsVerifyCode.DefaultSignName);
Check.NotNullOrWhiteSpace(templateCode, AliyunSettingNames.SmsVerifyCode.DefaultTemplateCode);
@ -132,6 +136,7 @@ public class AliyunSmsSender : ISmsSender, IAliyunSmsVerifyCodeSender
{
Domain = domain,
Version = version,
Product = "Dypnsapi",
Method = MethodType.POST,
Action = "SendSmsVerifyCode",
};

20
aspnet-core/framework/common/LINGYUN.Abp.Sms.Aliyun/LINGYUN/Abp/Sms/Aliyun/Localization/Resources/en.json

@ -1,6 +1,26 @@
{
"culture": "en",
"texts": {
"DisplayName:Aliyun.Sms": "Sms",
"Description:Aliyun.Sms": "Sms",
"DisplayName:Aliyun.SmsVerifyCode": "Sms Verify Code",
"Description:Aliyun.SmsVerifyCode": "Sms Verify Code",
"DisplayName:ActionName": "Action Name",
"Description:ActionName": "Action Name",
"DisplayName:DefaultSignName": "Default Sign Name",
"Description:DefaultSignName": "Default Sign Name",
"DisplayName:DefaultTemplateCode": "Default Template Code",
"Description:DefaultTemplateCode": "Default Template Code",
"DisplayName:DefaultPhoneNumber": "Default Phone Number",
"Description:DefaultPhoneNumber": "Default Phone Number",
"DisplayName:SmsDomain": "Domain",
"Description:SmsDomain": "Domain",
"DisplayName:SmsVerifyCodeDomain": "Domain",
"Description:SmsVerifyCodeDomain": "Sms Verify Code Domain",
"DisplayName:Version": "Version",
"Description:Version": "Version",
"DisplayName:VisableErrorToClient": "Visable Error To Client",
"Description:VisableErrorToClient": "Visable Error To Client",
"SendMessageFailed": "Text message sending failed:{0}",
"SMS_SIGNATURE_SCENE_ILLEGAL": "Signature scene used by SMS is illegal",
"DENY_IP_RANGE": "Region where source IP address is disabled",

20
aspnet-core/framework/common/LINGYUN.Abp.Sms.Aliyun/LINGYUN/Abp/Sms/Aliyun/Localization/Resources/zh-Hans.json

@ -1,6 +1,26 @@
{
"culture": "zh-Hans",
"texts": {
"DisplayName:Aliyun.Sms": "短信服务",
"Description:Aliyun.Sms": "阿里云短信服务",
"DisplayName:Aliyun.SmsVerifyCode": "短信认证服务",
"Description:Aliyun.SmsVerifyCode": "阿里云短信认证服务",
"DisplayName:ActionName": "发送短信方法",
"Description:ActionName": "发送短信方法名称,详情见阿里云Sms服务",
"DisplayName:DefaultSignName": "默认短信签名",
"Description:DefaultSignName": "当用户未指定短信签名时的默认签名名称",
"DisplayName:DefaultTemplateCode": "默认短信模板号",
"Description:DefaultTemplateCode": "当用户未指定短信签名时的默认短信模板号",
"DisplayName:DefaultPhoneNumber": "默认接收短信手机号",
"Description:DefaultPhoneNumber": "当用户未指定短信接收方时的默认接收手机号码",
"DisplayName:SmsDomain": "阿里云sms服务域名",
"Description:SmsDomain": "阿里云sms服务域名",
"DisplayName:SmsVerifyCodeDomain": "阿里云号码认证服务域名",
"Description:SmsVerifyCodeDomain": "阿里云号码认证服务域名",
"DisplayName:Version": "阿里云sms服务版本号",
"Description:Version": "阿里云sms服务版本号",
"DisplayName:VisableErrorToClient": "发送错误到客户端",
"Description:VisableErrorToClient": "当短信服务发送出现错误时是否发送错误详情到客户端",
"SendMessageFailed": "发送短信错误:{0}",
"SMS_SIGNATURE_SCENE_ILLEGAL": "短信所使用签名场景非法",
"DENY_IP_RANGE": "源IP地址所在的地区被禁用",

Loading…
Cancel
Save