mirror of
http://git.coreshop.cn/jianweie/coreshoppro.git
synced 2025-12-06 15:43:27 +08:00
完成阿里云短信功能并进行测试
This commit is contained in:
@@ -1632,6 +1632,25 @@ namespace CoreCms.Net.Configuration
|
||||
|
||||
#region 短信相关=====================================================
|
||||
|
||||
/// <summary>
|
||||
/// 短信发送平台
|
||||
/// </summary>
|
||||
public enum SmsType
|
||||
{
|
||||
/// <summary>
|
||||
/// 凯信通
|
||||
/// </summary>
|
||||
[Description("凯信通")]
|
||||
KingTto = 1,
|
||||
/// <summary>
|
||||
/// 阿里云
|
||||
/// </summary>
|
||||
[Description("阿里云")]
|
||||
AliYun = 2,
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 短信消息分类
|
||||
/// </summary>
|
||||
@@ -3340,5 +3359,35 @@ namespace CoreCms.Net.Configuration
|
||||
|
||||
#endregion
|
||||
|
||||
#region 抽奖活动
|
||||
|
||||
/// <summary>
|
||||
/// 抽奖活动类型
|
||||
/// </summary>
|
||||
public enum LuckyType
|
||||
{
|
||||
/// <summary>
|
||||
/// 大转盘
|
||||
/// </summary>
|
||||
[Description("大转盘")]
|
||||
LuckyWheel = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 九宫格
|
||||
/// </summary>
|
||||
[Description("九宫格")]
|
||||
LuckyGrid = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 老虎机
|
||||
/// </summary>
|
||||
[Description("老虎机")]
|
||||
SlotMachine = 3
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -628,6 +628,12 @@ namespace CoreCms.Net.Configuration
|
||||
/// 是否开启短信
|
||||
/// </summary>
|
||||
public const string SmsEnabled = "smsEnabled";
|
||||
|
||||
/// <summary>
|
||||
/// 短信类型
|
||||
/// </summary>
|
||||
public const string SmsType = "smsType";
|
||||
|
||||
/// <summary>
|
||||
/// 用户ID
|
||||
/// </summary>
|
||||
@@ -664,62 +670,126 @@ namespace CoreCms.Net.Configuration
|
||||
/// </summary>
|
||||
public const string SmsIpSendBlackList = "smsIpSendBlackList";
|
||||
|
||||
#region 凯信通短信常量
|
||||
|
||||
/// <summary>
|
||||
/// 账户注册-短信内容模板
|
||||
/// 凯信通-账户注册-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsTplForReg = "smsTplForReg";
|
||||
|
||||
/// <summary>
|
||||
/// 账户登录-短信内容模板
|
||||
/// 凯信通-账户登录-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsTplForLogin = "smsTplForLogin";
|
||||
|
||||
/// <summary>
|
||||
/// 验证验证码-短信内容模板
|
||||
/// 凯信通-验证验证码-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsTplForVeri = "smsTplForVeri";
|
||||
|
||||
/// <summary>
|
||||
/// 下单成功时-短信内容模板
|
||||
/// 凯信通-下单成功时-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsTplForCreateOrder = "smsTplForCreateOrder";
|
||||
|
||||
/// <summary>
|
||||
/// 订单支付成功时-短信内容模板
|
||||
/// 凯信通-订单支付成功时-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsTplForOrderPayed = "smsTplForOrderPayed";
|
||||
|
||||
/// <summary>
|
||||
/// 订单催付提醒-短信内容模板
|
||||
/// 凯信通-订单催付提醒-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsTplForRemindOrderPay = "smsTplForRemindOrderPay";
|
||||
|
||||
/// <summary>
|
||||
/// 订单发货通知-短信内容模板
|
||||
/// 凯信通-订单发货通知-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsTplForDeliveryNotice = "smsTplForDeliveryNotice";
|
||||
|
||||
/// <summary>
|
||||
/// 售后确认通过-短信内容模板
|
||||
/// 凯信通-售后确认通过-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsTplForAfterSalesPass = "smsTplForAfterSalesPass";
|
||||
|
||||
/// <summary>
|
||||
/// 用户退款成功通知-短信内容模板
|
||||
/// 凯信通-用户退款成功通知-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsTplForRefundSuccess = "smsTplForRefundSuccess";
|
||||
|
||||
/// <summary>
|
||||
/// 订单付款成功平台通知-短信内容模板
|
||||
/// 凯信通-订单付款成功平台通知-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsTplForSellerOrderNotice = "smsTplForSellerOrderNotice";
|
||||
|
||||
/// <summary>
|
||||
/// 通用类型-短信内容模板
|
||||
/// 凯信通-通用类型-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsTplForCommon = "smsTplForCommon";
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region 阿里云短信常量
|
||||
|
||||
/// <summary>
|
||||
/// 阿里云-账户注册-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsAliYunTplForReg = "smsAliYunTplForReg";
|
||||
|
||||
/// <summary>
|
||||
/// 阿里云-账户登录-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsAliYunTplForLogin = "smsAliYunTplForLogin";
|
||||
|
||||
/// <summary>
|
||||
/// 阿里云-验证验证码-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsAliYunTplForVeri = "smsAliYunTplForVeri";
|
||||
|
||||
/// <summary>
|
||||
/// 阿里云-下单成功时-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsAliYunTplForCreateOrder = "smsAliYunTplForCreateOrder";
|
||||
|
||||
/// <summary>
|
||||
/// 阿里云-订单支付成功时-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsAliYunTplForOrderPayed = "smsAliYunTplForOrderPayed";
|
||||
|
||||
/// <summary>
|
||||
/// 阿里云-订单催付提醒-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsAliYunTplForRemindOrderPay = "smsAliYunTplForRemindOrderPay";
|
||||
|
||||
/// <summary>
|
||||
/// 阿里云-订单发货通知-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsAliYunTplForDeliveryNotice = "smsAliYunTplForDeliveryNotice";
|
||||
|
||||
/// <summary>
|
||||
/// 阿里云-售后确认通过-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsAliYunTplForAfterSalesPass = "smsAliYunTplForAfterSalesPass";
|
||||
|
||||
/// <summary>
|
||||
/// 阿里云-用户退款成功通知-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsAliYunTplForRefundSuccess = "smsAliYunTplForRefundSuccess";
|
||||
|
||||
/// <summary>
|
||||
/// 阿里云-订单付款成功平台通知-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsAliYunTplForSellerOrderNotice = "smsAliYunTplForSellerOrderNotice";
|
||||
|
||||
/// <summary>
|
||||
/// 阿里云-通用类型-短信内容模板
|
||||
/// </summary>
|
||||
public const string SmsAliYunTplForCommon = "smsAliYunTplForCommon";
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
//网络打印机============================================================================
|
||||
/// <summary>
|
||||
/// 是否开启
|
||||
|
||||
@@ -208,11 +208,14 @@ namespace CoreCms.Net.Configuration
|
||||
di.Add(SystemSettingConstVars.ShowApiAppid, new DictionaryKeyValues() { sKey = "AppId", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.ShowApiSecret, new DictionaryKeyValues() { sKey = "授权Secret", sValue = "" });
|
||||
|
||||
//凯信通短信设置
|
||||
//短信通用设置
|
||||
di.Add(SystemSettingConstVars.SmsEnabled, new DictionaryKeyValues() { sKey = "是否开启短信", sValue = "1" });
|
||||
// 1凯信通 2阿里云
|
||||
di.Add(SystemSettingConstVars.SmsType, new DictionaryKeyValues() { sKey = "短信类型", sValue = "1" });
|
||||
|
||||
di.Add(SystemSettingConstVars.SmsUserId, new DictionaryKeyValues() { sKey = "用户ID", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsAccount, new DictionaryKeyValues() { sKey = "账号", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsPassword, new DictionaryKeyValues() { sKey = "密码", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsAccount, new DictionaryKeyValues() { sKey = "账号(AppKey)", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsPassword, new DictionaryKeyValues() { sKey = "密码(AppSecret)", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsApiUrl, new DictionaryKeyValues() { sKey = "Api地址", sValue = "http://sms.corecms.net:9999/sms.aspx" });
|
||||
di.Add(SystemSettingConstVars.SmsSignature, new DictionaryKeyValues() { sKey = "短信签名", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsIpSendNumber, new DictionaryKeyValues() { sKey = "单Ip每日发送量", sValue = "20" });
|
||||
@@ -235,7 +238,7 @@ namespace CoreCms.Net.Configuration
|
||||
di.Add(SystemSettingConstVars.FilesStorageAliYunBucketName, new DictionaryKeyValues() { sKey = "阿里云桶名称", sValue = "CoreShop" });
|
||||
di.Add(SystemSettingConstVars.FilesStorageQiNiuBucketName, new DictionaryKeyValues() { sKey = "七牛云桶名称", sValue = "CoreShop" });
|
||||
|
||||
//短信发送内容模板
|
||||
//凯信通短信发送内容模板
|
||||
di.Add(SystemSettingConstVars.SmsTplForReg, new DictionaryKeyValues() { sKey = "账户注册", sValue = "您正在注册账号,验证码是{code},请勿告诉他人。" });
|
||||
di.Add(SystemSettingConstVars.SmsTplForLogin, new DictionaryKeyValues() { sKey = "账户登录", sValue = "您正在登陆账号,验证码是{code},请勿告诉他人。" });
|
||||
di.Add(SystemSettingConstVars.SmsTplForVeri, new DictionaryKeyValues() { sKey = "验证验证码", sValue = "您的验证码是{code},请勿告诉他人。" });
|
||||
@@ -248,6 +251,18 @@ namespace CoreCms.Net.Configuration
|
||||
di.Add(SystemSettingConstVars.SmsTplForSellerOrderNotice, new DictionaryKeyValues() { sKey = "订单付款成功平台通知", sValue = "您有新的订单了,请及时处理。" });
|
||||
di.Add(SystemSettingConstVars.SmsTplForCommon, new DictionaryKeyValues() { sKey = "通用类型", sValue = "欢迎您访问我们的微信小程序,有问题请联系客服。" });
|
||||
|
||||
//阿里云短信发送内容模板
|
||||
di.Add(SystemSettingConstVars.SmsAliYunTplForReg, new DictionaryKeyValues() { sKey = "账户注册", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsAliYunTplForLogin, new DictionaryKeyValues() { sKey = "账户登录", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsAliYunTplForVeri, new DictionaryKeyValues() { sKey = "验证验证码", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsAliYunTplForCreateOrder, new DictionaryKeyValues() { sKey = "下单成功时", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsAliYunTplForOrderPayed, new DictionaryKeyValues() { sKey = "订单支付成功时", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsAliYunTplForRemindOrderPay, new DictionaryKeyValues() { sKey = "订单催付提醒", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsAliYunTplForDeliveryNotice, new DictionaryKeyValues() { sKey = "订单发货通知", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsAliYunTplForAfterSalesPass, new DictionaryKeyValues() { sKey = "售后确认通过", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsAliYunTplForRefundSuccess, new DictionaryKeyValues() { sKey = "用户退款成功通知", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsAliYunTplForSellerOrderNotice, new DictionaryKeyValues() { sKey = "订单付款成功平台通知", sValue = "" });
|
||||
di.Add(SystemSettingConstVars.SmsAliYunTplForCommon, new DictionaryKeyValues() { sKey = "通用类型", sValue = "" });
|
||||
|
||||
//自提运费设置
|
||||
di.Add(SystemSettingConstVars.IntraCityServiceBy2KM, new DictionaryKeyValues() { sKey = "2公里内", sValue = "0" });
|
||||
|
||||
@@ -12218,26 +12218,6 @@
|
||||
图片地址
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.DTO.WxGoodCategoryChild.id">
|
||||
<summary>
|
||||
序列
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.DTO.WxGoodCategoryChild.name">
|
||||
<summary>
|
||||
标题
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.DTO.WxGoodCategoryChild.sort">
|
||||
<summary>
|
||||
排序
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.DTO.WxGoodCategoryChild.imageUrl">
|
||||
<summary>
|
||||
图片地址
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:CoreCms.Net.Model.ViewModels.DTO.WxNameTypeDto">
|
||||
<summary>
|
||||
wx返回Name/Type格式实体
|
||||
@@ -12627,6 +12607,11 @@
|
||||
是否开启
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SmsOptions.SmsType">
|
||||
<summary>
|
||||
短信类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SmsOptions.UserId">
|
||||
<summary>
|
||||
用户序列
|
||||
@@ -12667,6 +12652,61 @@
|
||||
短信发送IP黑名单
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SmsOptions.SmsAliYunTplForReg">
|
||||
<summary>
|
||||
阿里云-模板-账户注册
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SmsOptions.SmsAliYunTplForLogin">
|
||||
<summary>
|
||||
阿里云-模板-账户登录
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SmsOptions.SmsAliYunTplForVeri">
|
||||
<summary>
|
||||
阿里云-模板-验证验证码
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SmsOptions.SmsAliYunTplForCreateOrder">
|
||||
<summary>
|
||||
阿里云-模板-下单成功时
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SmsOptions.SmsAliYunTplForOrderPayed">
|
||||
<summary>
|
||||
阿里云-模板-订单支付成功时
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SmsOptions.SmsAliYunTplForRemindOrderPay">
|
||||
<summary>
|
||||
阿里云-模板-订单催付提醒
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SmsOptions.SmsAliYunTplForDeliveryNotice">
|
||||
<summary>
|
||||
阿里云-模板-订单发货通知
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SmsOptions.SmsAliYunTplForAfterSalesPass">
|
||||
<summary>
|
||||
阿里云-模板-售后确认通过
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SmsOptions.SmsAliYunTplForRefundSuccess">
|
||||
<summary>
|
||||
阿里云-模板-用户退款成功通知
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SmsOptions.SmsAliYunTplForSellerOrderNotice">
|
||||
<summary>
|
||||
阿里云-模板-订单付款成功平台通知
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SmsOptions.SmsAliYunTplForCommon">
|
||||
<summary>
|
||||
阿里云-模板-通用类型
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:CoreCms.Net.Model.ViewModels.Sms.SMSReturnData">
|
||||
<summary>
|
||||
短信发送回调结果
|
||||
|
||||
@@ -21,6 +21,11 @@ namespace CoreCms.Net.Model.ViewModels.Sms
|
||||
/// </summary>
|
||||
public bool Enabled { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 短信类型
|
||||
/// </summary>
|
||||
public int SmsType { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户序列
|
||||
/// </summary>
|
||||
@@ -62,6 +67,50 @@ namespace CoreCms.Net.Model.ViewModels.Sms
|
||||
/// </summary>
|
||||
public string SmsIpSendBlackList { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 阿里云-模板-账户注册
|
||||
/// </summary>
|
||||
public string SmsAliYunTplForReg { get; set; }
|
||||
/// <summary>
|
||||
/// 阿里云-模板-账户登录
|
||||
/// </summary>
|
||||
public string SmsAliYunTplForLogin { get; set; }
|
||||
/// <summary>
|
||||
/// 阿里云-模板-验证验证码
|
||||
/// </summary>
|
||||
public string SmsAliYunTplForVeri { get; set; }
|
||||
/// <summary>
|
||||
/// 阿里云-模板-下单成功时
|
||||
/// </summary>
|
||||
public string SmsAliYunTplForCreateOrder { get; set; }
|
||||
/// <summary>
|
||||
/// 阿里云-模板-订单支付成功时
|
||||
/// </summary>
|
||||
public string SmsAliYunTplForOrderPayed { get; set; }
|
||||
/// <summary>
|
||||
/// 阿里云-模板-订单催付提醒
|
||||
/// </summary>
|
||||
public string SmsAliYunTplForRemindOrderPay { get; set; }
|
||||
/// <summary>
|
||||
/// 阿里云-模板-订单发货通知
|
||||
/// </summary>
|
||||
public string SmsAliYunTplForDeliveryNotice { get; set; }
|
||||
/// <summary>
|
||||
/// 阿里云-模板-售后确认通过
|
||||
/// </summary>
|
||||
public string SmsAliYunTplForAfterSalesPass { get; set; }
|
||||
/// <summary>
|
||||
/// 阿里云-模板-用户退款成功通知
|
||||
/// </summary>
|
||||
public string SmsAliYunTplForRefundSuccess { get; set; }
|
||||
/// <summary>
|
||||
/// 阿里云-模板-订单付款成功平台通知
|
||||
/// </summary>
|
||||
public string SmsAliYunTplForSellerOrderNotice { get; set; }
|
||||
/// <summary>
|
||||
/// 阿里云-模板-通用类型
|
||||
/// </summary>
|
||||
public string SmsAliYunTplForCommon { get; set; }
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AlibabaCloud.SDK.Dysmsapi20170525" Version="2.0.24" />
|
||||
<PackageReference Include="Aliyun.OSS.SDK.NetCore" Version="2.13.0" />
|
||||
<PackageReference Include="Essensoft.Paylink.Alipay" Version="4.1.3" />
|
||||
<PackageReference Include="Essensoft.Paylink.WeChatPay" Version="4.1.3" />
|
||||
|
||||
@@ -22,12 +22,16 @@ using CoreCms.Net.Model.ViewModels.Sms;
|
||||
using CoreCms.Net.Model.ViewModels.UI;
|
||||
using CoreCms.Net.Utility.Extensions;
|
||||
using CoreCms.Net.Utility.Helper;
|
||||
using Essensoft.Paylink.Alipay.Domain;
|
||||
using Essensoft.Paylink.WeChatPay.V3.Domain;
|
||||
using Flurl.Http;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Routing.Template;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using SqlSugar;
|
||||
using Tea;
|
||||
using static SKIT.FlurlHttpClient.Wechat.Api.Models.WxaApiUserLogSearchResponse.Types.Data.Types.RealtimeLog.Types;
|
||||
|
||||
|
||||
@@ -126,26 +130,125 @@ namespace CoreCms.Net.Services
|
||||
{
|
||||
code = codeNumber
|
||||
};
|
||||
switch (type)
|
||||
if (type == "login")
|
||||
{
|
||||
case "login":
|
||||
if (smsOptions.SmsType == (int)GlobalEnumVars.SmsType.KingTto)
|
||||
{
|
||||
oldLog.contentBody = "您本次登陆的验证码是:" + codeNumber + ",请不要将验证码泄露给他人!";
|
||||
oldLog.parameters = JsonConvert.SerializeObject(obj);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
else if (smsOptions.SmsType == (int)GlobalEnumVars.SmsType.AliYun)
|
||||
{
|
||||
oldLog.contentBody = smsOptions.SmsAliYunTplForLogin;
|
||||
oldLog.parameters = JsonConvert.SerializeObject(new
|
||||
{
|
||||
code = codeNumber.ToString()
|
||||
});
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (smsOptions.SmsType == (int)GlobalEnumVars.SmsType.KingTto)
|
||||
{
|
||||
oldLog.contentBody = "您验证码是:" + codeNumber + ",请不要将验证码泄露给他人!";
|
||||
oldLog.parameters = JsonConvert.SerializeObject(obj);
|
||||
break;
|
||||
}
|
||||
else if (smsOptions.SmsType == (int)GlobalEnumVars.SmsType.AliYun)
|
||||
{
|
||||
oldLog.contentBody = smsOptions.SmsAliYunTplForVeri;
|
||||
oldLog.parameters = JsonConvert.SerializeObject(new
|
||||
{
|
||||
code = codeNumber.ToString()
|
||||
});
|
||||
}
|
||||
}
|
||||
await _dal.InsertAsync(oldLog);
|
||||
}
|
||||
|
||||
var result = await SendSms(oldLog.mobile, oldLog.contentBody, smsOptions);
|
||||
if (smsOptions.SmsType == (int)GlobalEnumVars.SmsType.KingTto)
|
||||
{
|
||||
var result = await SendSms(oldLog.mobile, oldLog.contentBody, smsOptions);
|
||||
|
||||
jm.status = result.IsSuccess;
|
||||
jm.msg = result.IsSuccess ? "发送成功" : result.Message;
|
||||
jm.otherData = result;
|
||||
jm.status = result.IsSuccess;
|
||||
jm.msg = result.IsSuccess ? "发送成功" : result.Message;
|
||||
jm.otherData = result;
|
||||
|
||||
}
|
||||
else if (smsOptions.SmsType == (int)GlobalEnumVars.SmsType.AliYun)
|
||||
{
|
||||
|
||||
if (type == "login" && string.IsNullOrEmpty(smsOptions.SmsAliYunTplForLogin))
|
||||
{
|
||||
jm.msg = "阿里云登录短信模板未设置";
|
||||
return jm;
|
||||
}
|
||||
|
||||
if (type != "login" && string.IsNullOrEmpty(smsOptions.SmsAliYunTplForVeri))
|
||||
{
|
||||
jm.msg = "阿里云验证码短信模板未设置";
|
||||
return jm;
|
||||
}
|
||||
|
||||
var config = new AlibabaCloud.OpenApiClient.Models.Config
|
||||
{
|
||||
// 必填,您的 AccessKey ID
|
||||
AccessKeyId = smsOptions.Account,
|
||||
// 必填,您的 AccessKey Secret
|
||||
AccessKeySecret = smsOptions.Password,
|
||||
//Endpoint 请参考 https://api.aliyun.com/product/Dysmsapi
|
||||
Endpoint = smsOptions.ApiUrl,
|
||||
|
||||
};
|
||||
var client = new AlibabaCloud.SDK.Dysmsapi20170525.Client(config);
|
||||
|
||||
var sendSmsRequest = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest();
|
||||
var runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
|
||||
|
||||
try
|
||||
{
|
||||
sendSmsRequest.SignName = smsOptions.Signature;
|
||||
sendSmsRequest.PhoneNumbers = mobile;
|
||||
sendSmsRequest.TemplateCode =
|
||||
type == "login" ? smsOptions.SmsAliYunTplForLogin : smsOptions.SmsAliYunTplForVeri;
|
||||
sendSmsRequest.TemplateParam = JsonConvert.SerializeObject(new
|
||||
{
|
||||
code = codeNumber.ToString()
|
||||
});
|
||||
sendSmsRequest.OutId = Guid.NewGuid().ToString();
|
||||
|
||||
var result = await client.SendSmsWithOptionsAsync(sendSmsRequest, runtime);
|
||||
|
||||
if (result.Body.Code == "OK")
|
||||
{
|
||||
jm.status = true;
|
||||
jm.msg = "发送成功";
|
||||
}
|
||||
else
|
||||
{
|
||||
jm.status = false;
|
||||
jm.msg = "发送失败:" + result.Body.Message;
|
||||
}
|
||||
|
||||
jm.otherData = result;
|
||||
|
||||
}
|
||||
catch (TeaException error)
|
||||
{
|
||||
jm.status = false;
|
||||
jm.msg = "发送失败:" + error.Message;
|
||||
}
|
||||
catch (Exception _error)
|
||||
{
|
||||
var error = new TeaException(new Dictionary<string, object>
|
||||
{
|
||||
{ "message", _error.Message }
|
||||
});
|
||||
|
||||
jm.status = false;
|
||||
jm.msg = "发送失败:" + _error.Message;
|
||||
jm.otherData = error.Data["Recommend"];
|
||||
}
|
||||
}
|
||||
return jm;
|
||||
}
|
||||
#endregion
|
||||
@@ -274,11 +377,11 @@ namespace CoreCms.Net.Services
|
||||
return jm;
|
||||
}
|
||||
var isUsed = false;
|
||||
string codeNumberStr = string.Empty;
|
||||
if (code == GlobalEnumVars.SmsMessageTypes.Reg.ToString() || code == GlobalEnumVars.SmsMessageTypes.Login.ToString() || code == GlobalEnumVars.SmsMessageTypes.Veri.ToString())
|
||||
{
|
||||
var newCreateTime = DateTime.Now.AddSeconds(-60);
|
||||
var smsInfo = await _dal.QueryByClauseAsync(p =>
|
||||
p.mobile == mobile && p.code == code && p.createTime < newCreateTime && p.isUsed == false);
|
||||
var smsInfo = await _dal.QueryByClauseAsync(p => p.mobile == mobile && p.code == code && p.createTime < newCreateTime && p.isUsed == false);
|
||||
if (smsInfo != null)
|
||||
{
|
||||
var ts = dt - smsInfo.createTime;
|
||||
@@ -288,6 +391,10 @@ namespace CoreCms.Net.Services
|
||||
return jm;
|
||||
}
|
||||
parameters = JObject.Parse(smsInfo.parameters);
|
||||
if (parameters.TryGetValue("code", out var parameter))
|
||||
{
|
||||
codeNumberStr = parameter?.ToString();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -298,6 +405,7 @@ namespace CoreCms.Net.Services
|
||||
parameters.Remove("code");
|
||||
}
|
||||
parameters.Add("code", codeNumber);
|
||||
codeNumberStr = codeNumber.ToString();
|
||||
}
|
||||
isUsed = false;
|
||||
}
|
||||
@@ -309,132 +417,258 @@ namespace CoreCms.Net.Services
|
||||
var str = string.Empty;
|
||||
var allConfigs = await _settingServices.GetConfigDictionaries();
|
||||
|
||||
if (code == GlobalEnumVars.SmsMessageTypes.Reg.ToString())
|
||||
if (smsOptions.SmsType == (int)GlobalEnumVars.SmsType.KingTto)
|
||||
{
|
||||
// 账户注册
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForReg);
|
||||
if (!string.IsNullOrEmpty(msg))
|
||||
|
||||
if (code == GlobalEnumVars.SmsMessageTypes.Reg.ToString())
|
||||
{
|
||||
var sendCode = string.Empty;
|
||||
if (parameters.ContainsKey("code"))
|
||||
// 账户注册
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForReg);
|
||||
if (!string.IsNullOrEmpty(msg))
|
||||
{
|
||||
sendCode = parameters["code"]?.ToString();
|
||||
str = msg.Replace("{code}", codeNumberStr);
|
||||
}
|
||||
str = msg.Replace("{code}", sendCode);
|
||||
}
|
||||
}
|
||||
else if (code == GlobalEnumVars.SmsMessageTypes.Login.ToString())
|
||||
{
|
||||
// 账户登录
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForLogin);
|
||||
if (!string.IsNullOrEmpty(msg))
|
||||
else if (code == GlobalEnumVars.SmsMessageTypes.Login.ToString())
|
||||
{
|
||||
var sendCode = string.Empty;
|
||||
if (parameters.ContainsKey("code"))
|
||||
// 账户登录
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForLogin);
|
||||
if (!string.IsNullOrEmpty(msg))
|
||||
{
|
||||
sendCode = parameters["code"]?.ToString();
|
||||
str = msg.Replace("{code}", codeNumberStr);
|
||||
}
|
||||
str = msg.Replace("{code}", sendCode);
|
||||
}
|
||||
}
|
||||
else if (code == GlobalEnumVars.SmsMessageTypes.Veri.ToString())
|
||||
{
|
||||
// 验证验证码
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForVeri);
|
||||
if (!string.IsNullOrEmpty(msg))
|
||||
else if (code == GlobalEnumVars.SmsMessageTypes.Veri.ToString())
|
||||
{
|
||||
var sendCode = string.Empty;
|
||||
if (parameters.ContainsKey("code"))
|
||||
// 验证验证码
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForVeri);
|
||||
if (!string.IsNullOrEmpty(msg))
|
||||
{
|
||||
sendCode = parameters["code"]?.ToString();
|
||||
str = msg.Replace("{code}", codeNumberStr);
|
||||
}
|
||||
str = msg.Replace("{code}", sendCode);
|
||||
}
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.CreateOrder.ToString())
|
||||
{
|
||||
// 订单创建
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForCreateOrder);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.OrderPayed.ToString())
|
||||
{
|
||||
// 订单支付通知买家
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForOrderPayed);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.RemindOrderPay.ToString())
|
||||
{
|
||||
// 未支付催单
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForRemindOrderPay);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.DeliveryNotice.ToString())
|
||||
{
|
||||
// 订单发货
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForDeliveryNotice);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.AfterSalesPass.ToString())
|
||||
{
|
||||
// 售后审核通过
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForAfterSalesPass);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.RefundSuccess.ToString())
|
||||
{
|
||||
// 退款已处理
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForRefundSuccess);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.SellerOrderNotice.ToString())
|
||||
{
|
||||
// 订单支付通知卖家
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForSellerOrderNotice);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.Common.ToString())
|
||||
{
|
||||
//通用类型
|
||||
var tpl = string.Empty;
|
||||
if (parameters.ContainsKey("tpl"))
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.CreateOrder.ToString())
|
||||
{
|
||||
tpl = parameters["tpl"]?.ToString();
|
||||
}
|
||||
str = tpl;
|
||||
if (string.IsNullOrEmpty(str))
|
||||
{
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForCommon);
|
||||
// 订单创建
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForCreateOrder);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.OrderPayed.ToString())
|
||||
{
|
||||
// 订单支付通知买家
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForOrderPayed);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.RemindOrderPay.ToString())
|
||||
{
|
||||
// 未支付催单
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForRemindOrderPay);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.DeliveryNotice.ToString())
|
||||
{
|
||||
// 订单发货
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForDeliveryNotice);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.AfterSalesPass.ToString())
|
||||
{
|
||||
// 售后审核通过
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForAfterSalesPass);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.RefundSuccess.ToString())
|
||||
{
|
||||
// 退款已处理
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForRefundSuccess);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.SellerOrderNotice.ToString())
|
||||
{
|
||||
// 订单支付通知卖家
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForSellerOrderNotice);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.Common.ToString())
|
||||
{
|
||||
//通用类型
|
||||
var tpl = string.Empty;
|
||||
if (parameters.ContainsKey("tpl"))
|
||||
{
|
||||
tpl = parameters["tpl"]?.ToString();
|
||||
}
|
||||
str = tpl;
|
||||
if (string.IsNullOrEmpty(str))
|
||||
{
|
||||
var msg = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.SmsTplForCommon);
|
||||
str = !string.IsNullOrEmpty(msg) ? msg : string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(str))
|
||||
{
|
||||
jm.msg = GlobalErrorCodeVars.Code10009;
|
||||
return jm;
|
||||
}
|
||||
|
||||
var oldLog = new CoreCmsSms();
|
||||
oldLog.mobile = mobile;
|
||||
oldLog.code = code;
|
||||
oldLog.parameters = JsonConvert.SerializeObject(parameters);
|
||||
oldLog.contentBody = str;
|
||||
oldLog.createTime = dt;
|
||||
oldLog.ip = ip;
|
||||
oldLog.isUsed = isUsed;
|
||||
|
||||
await _dal.InsertAsync(oldLog);
|
||||
|
||||
var result = await SendSms(oldLog.mobile, oldLog.contentBody, smsOptions);
|
||||
|
||||
jm.status = result.IsSuccess;
|
||||
jm.msg = result.IsSuccess ? "发送成功" : result.Message;
|
||||
|
||||
if (string.IsNullOrEmpty(str))
|
||||
{
|
||||
jm.msg = GlobalErrorCodeVars.Code10009;
|
||||
return jm;
|
||||
}
|
||||
else if (smsOptions.SmsType == (int)GlobalEnumVars.SmsType.AliYun)
|
||||
{
|
||||
var templateCode = string.Empty;
|
||||
object templateParam = null;
|
||||
if (code == GlobalEnumVars.SmsMessageTypes.Reg.ToString())
|
||||
{
|
||||
templateCode = smsOptions.SmsAliYunTplForReg;
|
||||
templateParam = new
|
||||
{
|
||||
code = codeNumberStr
|
||||
};
|
||||
}
|
||||
else if (code == GlobalEnumVars.SmsMessageTypes.Login.ToString())
|
||||
{
|
||||
templateCode = smsOptions.SmsAliYunTplForLogin;
|
||||
templateParam = new
|
||||
{
|
||||
code = codeNumberStr
|
||||
};
|
||||
}
|
||||
else if (code == GlobalEnumVars.SmsMessageTypes.Veri.ToString())
|
||||
{
|
||||
templateCode = smsOptions.SmsAliYunTplForVeri;
|
||||
templateParam = new
|
||||
{
|
||||
code = codeNumberStr
|
||||
};
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.CreateOrder.ToString())
|
||||
{
|
||||
templateCode = smsOptions.SmsAliYunTplForCreateOrder;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.OrderPayed.ToString())
|
||||
{
|
||||
templateCode = smsOptions.SmsAliYunTplForOrderPayed;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.RemindOrderPay.ToString())
|
||||
{
|
||||
templateCode = smsOptions.SmsAliYunTplForRemindOrderPay;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.DeliveryNotice.ToString())
|
||||
{
|
||||
templateCode = smsOptions.SmsAliYunTplForDeliveryNotice;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.AfterSalesPass.ToString())
|
||||
{
|
||||
templateCode = smsOptions.SmsAliYunTplForAfterSalesPass;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.RefundSuccess.ToString())
|
||||
{
|
||||
templateCode = smsOptions.SmsAliYunTplForRefundSuccess;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.SellerOrderNotice.ToString())
|
||||
{
|
||||
templateCode = smsOptions.SmsAliYunTplForSellerOrderNotice;
|
||||
}
|
||||
else if (code == GlobalEnumVars.PlatformMessageTypes.Common.ToString())
|
||||
{
|
||||
templateCode = smsOptions.SmsAliYunTplForCommon;
|
||||
}
|
||||
|
||||
var oldLog = new CoreCmsSms();
|
||||
oldLog.mobile = mobile;
|
||||
oldLog.code = code;
|
||||
oldLog.parameters = JsonConvert.SerializeObject(parameters);
|
||||
oldLog.contentBody = str;
|
||||
oldLog.createTime = dt;
|
||||
oldLog.ip = ip;
|
||||
oldLog.isUsed = isUsed;
|
||||
if (string.IsNullOrEmpty(templateCode))
|
||||
{
|
||||
jm.msg = GlobalErrorCodeVars.Code10009;
|
||||
return jm;
|
||||
}
|
||||
|
||||
await _dal.InsertAsync(oldLog);
|
||||
var config = new AlibabaCloud.OpenApiClient.Models.Config
|
||||
{
|
||||
// 必填,您的 AccessKey ID
|
||||
AccessKeyId = smsOptions.Account,
|
||||
// 必填,您的 AccessKey Secret
|
||||
AccessKeySecret = smsOptions.Password,
|
||||
//Endpoint 请参考 https://api.aliyun.com/product/Dysmsapi
|
||||
Endpoint = smsOptions.ApiUrl,
|
||||
|
||||
var result = await SendSms(oldLog.mobile, oldLog.contentBody, smsOptions);
|
||||
};
|
||||
var client = new AlibabaCloud.SDK.Dysmsapi20170525.Client(config);
|
||||
|
||||
jm.status = result.IsSuccess;
|
||||
jm.msg = result.IsSuccess ? "发送成功" : result.Message;
|
||||
var sendSmsRequest = new AlibabaCloud.SDK.Dysmsapi20170525.Models.SendSmsRequest();
|
||||
var runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
|
||||
|
||||
return jm;
|
||||
try
|
||||
{
|
||||
sendSmsRequest.SignName = smsOptions.Signature;
|
||||
sendSmsRequest.PhoneNumbers = mobile;
|
||||
sendSmsRequest.TemplateCode = templateCode;
|
||||
sendSmsRequest.TemplateParam = JsonConvert.SerializeObject(templateParam);
|
||||
sendSmsRequest.OutId = Guid.NewGuid().ToString();
|
||||
|
||||
var result = await client.SendSmsWithOptionsAsync(sendSmsRequest, runtime);
|
||||
|
||||
if (result.Body.Code == "OK")
|
||||
{
|
||||
var smsInfo = new CoreCmsSms();
|
||||
smsInfo.mobile = mobile;
|
||||
smsInfo.parameters = JsonConvert.SerializeObject(result);
|
||||
smsInfo.code = code;
|
||||
smsInfo.contentBody = templateCode;
|
||||
smsInfo.createTime = DateTime.Now;
|
||||
smsInfo.ip = _httpContextAccessor.HttpContext?.Connection.RemoteIpAddress != null ? _httpContextAccessor.HttpContext.Connection.RemoteIpAddress.MapToIPv4().ToString() : "127.0.0.1";
|
||||
smsInfo.isUsed = isUsed;
|
||||
|
||||
await _dal.InsertAsync(smsInfo);
|
||||
|
||||
jm.status = true;
|
||||
jm.msg = "发送成功";
|
||||
}
|
||||
else
|
||||
{
|
||||
jm.status = false;
|
||||
jm.msg = "发送失败:" + result.Body.Message;
|
||||
}
|
||||
}
|
||||
catch (TeaException error)
|
||||
{
|
||||
jm.status = false;
|
||||
jm.msg = "发送失败:" + error.Message;
|
||||
}
|
||||
catch (Exception _error)
|
||||
{
|
||||
var error = new TeaException(new Dictionary<string, object>
|
||||
{
|
||||
{ "message", _error.Message }
|
||||
});
|
||||
|
||||
jm.status = false;
|
||||
jm.msg = "发送失败:" + _error.Message;
|
||||
jm.otherData = error.Data["Recommend"];
|
||||
}
|
||||
return jm;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
jm.status = false;
|
||||
jm.msg = "未获取到发送方式";
|
||||
return jm;
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -215,15 +215,28 @@ namespace CoreCms.Net.Services
|
||||
var settings = await GetDatas();
|
||||
|
||||
sms.Enabled = GetValue(SystemSettingConstVars.SmsEnabled, configs, settings).ObjectToInt(1) == 1;
|
||||
sms.SmsType = GetValue(SystemSettingConstVars.SmsType, configs, settings).ObjectToInt(1);
|
||||
sms.UserId = GetValue(SystemSettingConstVars.SmsUserId, configs, settings);
|
||||
sms.Account = GetValue(SystemSettingConstVars.SmsAccount, configs, settings);
|
||||
sms.Password = GetValue(SystemSettingConstVars.SmsPassword, configs, settings);
|
||||
sms.Signature = GetValue(SystemSettingConstVars.SmsSignature, configs, settings);
|
||||
sms.ApiUrl = GetValue(SystemSettingConstVars.SmsApiUrl, configs, settings);
|
||||
sms.SmsIpSendNumber= GetValue(SystemSettingConstVars.SmsIpSendNumber, configs, settings).ObjectToInt(20);
|
||||
sms.SmsIpSendNumber = GetValue(SystemSettingConstVars.SmsIpSendNumber, configs, settings).ObjectToInt(20);
|
||||
sms.SmsIpSendWhiteList = GetValue(SystemSettingConstVars.SmsIpSendWhiteList, configs, settings);
|
||||
sms.SmsIpSendBlackList = GetValue(SystemSettingConstVars.SmsIpSendBlackList, configs, settings);
|
||||
|
||||
sms.SmsAliYunTplForReg = GetValue(SystemSettingConstVars.SmsAliYunTplForReg, configs, settings);
|
||||
sms.SmsAliYunTplForLogin = GetValue(SystemSettingConstVars.SmsAliYunTplForLogin, configs, settings);
|
||||
sms.SmsAliYunTplForVeri = GetValue(SystemSettingConstVars.SmsAliYunTplForVeri, configs, settings);
|
||||
sms.SmsAliYunTplForCreateOrder = GetValue(SystemSettingConstVars.SmsAliYunTplForCreateOrder, configs, settings);
|
||||
sms.SmsAliYunTplForOrderPayed = GetValue(SystemSettingConstVars.SmsAliYunTplForOrderPayed, configs, settings);
|
||||
sms.SmsAliYunTplForRemindOrderPay = GetValue(SystemSettingConstVars.SmsAliYunTplForRemindOrderPay, configs, settings);
|
||||
sms.SmsAliYunTplForDeliveryNotice = GetValue(SystemSettingConstVars.SmsAliYunTplForDeliveryNotice, configs, settings);
|
||||
sms.SmsAliYunTplForAfterSalesPass = GetValue(SystemSettingConstVars.SmsAliYunTplForAfterSalesPass, configs, settings);
|
||||
sms.SmsAliYunTplForRefundSuccess = GetValue(SystemSettingConstVars.SmsAliYunTplForRefundSuccess, configs, settings);
|
||||
sms.SmsAliYunTplForSellerOrderNotice = GetValue(SystemSettingConstVars.SmsAliYunTplForSellerOrderNotice, configs, settings);
|
||||
sms.SmsAliYunTplForCommon = GetValue(SystemSettingConstVars.SmsAliYunTplForCommon, configs, settings);
|
||||
|
||||
return sms;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,91 +19,102 @@
|
||||
.layui-tab-content { padding: 15px 0; }
|
||||
</style>
|
||||
<script type="text/html" template lay-type="Post" lay-url="{{ layui.setter.apiUrl }}Api/CoreCmsSmsSetting/GetIndex" lay-done="layui.data.done(d);">
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-row layui-col-space15">
|
||||
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-tab layui-tab-card" lay-filter="setting">
|
||||
<ul class="layui-tab-title">
|
||||
<li lay-id="sms" class="layui-this">短信设置</li>
|
||||
<li lay-id="smsstr">短信内容模板</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-tab layui-tab-card" lay-filter="setting">
|
||||
<ul class="layui-tab-title">
|
||||
<li lay-id="sms" class="layui-this">短信设置</li>
|
||||
<li lay-id="smsstr">凯信通短信内容模板</li>
|
||||
<li lay-id="alipaysmsstr">阿里云短信编码模板</li>
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
|
||||
<div class="layui-tab-item layui-show">
|
||||
<div class="layui-form coreshop-form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsEnabled']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-7">
|
||||
<input type="radio" name="smsEnabled" value="1" title="开启" {{d.data.configs['smsEnabled']['sValue']==="1" ? 'checked':''}}>
|
||||
<input type="radio" name="smsEnabled" value="2" title="关闭" {{d.data.configs['smsEnabled']['sValue']==="2" ? 'checked':''}}>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-tab-item layui-show">
|
||||
<div class="layui-form coreshop-form">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsEnabled']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-7">
|
||||
<input type="radio" name="smsEnabled" value="1" title="开启" {{d.data.configs['smsEnabled']['sValue']==="1" ? 'checked':''}}>
|
||||
<input type="radio" name="smsEnabled" value="2" title="关闭" {{d.data.configs['smsEnabled']['sValue']==="2" ? 'checked':''}}>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsType']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-7">
|
||||
<input type="radio" name="smsType" value="1" title="凯信通" {{d.data.configs['smsType']['sValue']==="1" ? 'checked':''}}>
|
||||
<input type="radio" name="smsType" value="2" title="阿里云" {{d.data.configs['smsType']['sValue']==="2" ? 'checked':''}}>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsUserId']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<input type="text" name="smsUserId" value="{{d.data.configs['smsUserId']['sValue']}}" lay-verify="number" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">仅【凯信通】适用</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsAccount']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<input type="text" name="smsAccount" value="{{d.data.configs['smsAccount']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">【凯信通】为账号,【阿里云为AccessKey ID】</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsPassword']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<input type="text" name="smsPassword" value="{{d.data.configs['smsPassword']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">【凯信通】为密码,【阿里云为AccessKey Secret】</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsApiUrl']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-12">
|
||||
<input type="text" name="smsApiUrl" value="{{d.data.configs['smsApiUrl']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">凯信通为:【http://sms.corecms.net:9999/sms.aspx】;阿里云为【dysmsapi.aliyuncs.com】,阿里云还请参考 https://api.aliyun.com/product/Dysmsapi</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsUserId']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<input type="text" name="smsUserId" value="{{d.data.configs['smsUserId']['sValue']}}" lay-verify="number" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsSignature']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<input type="text" name="smsSignature" value="{{d.data.configs['smsSignature']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">凯信通短信签名,2-8个汉字以内,阿里云为平台先通过申请</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsAccount']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<input type="text" name="smsAccount" value="{{d.data.configs['smsAccount']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsIpSendNumber']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<input type="text" name="smsIpSendNumber" value="{{d.data.configs['smsIpSendNumber']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">单个ip,每日请求的相关业务发送短信的数量。比如用户注册登录等。</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsPassword']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<input type="text" name="smsPassword" value="{{d.data.configs['smsPassword']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsIpSendWhiteList']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<textarea name="smsIpSendWhiteList" cols="30" rows="10" class="layui-input" style="height: 100px; padding: 10px">{{d.data.configs['smsIpSendWhiteList']['sValue']}}</textarea>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">设置的ip将不受到每日发送的限制,一般是设置站点的ip地址,使用小写分割线“|”隔开</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsApiUrl']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-12">
|
||||
<input type="text" name="smsApiUrl" value="{{d.data.configs['smsApiUrl']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">默认地址为:http://sms.corecms.net:9999/sms.aspx</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsSignature']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<input type="text" name="smsSignature" value="{{d.data.configs['smsSignature']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">短信签名,2-8个汉字以内</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsIpSendNumber']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<input type="text" name="smsIpSendNumber" value="{{d.data.configs['smsIpSendNumber']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">单个ip,每日请求的相关业务发送短信的数量。比如用户注册登录等。</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsIpSendWhiteList']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<textarea name="smsIpSendWhiteList" cols="30" rows="10" class="layui-input" style="height: 100px; padding: 10px">{{d.data.configs['smsIpSendWhiteList']['sValue']}}</textarea>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">设置的ip将不受到每日发送的限制,一般是设置站点的ip地址,使用小写分割线“|”隔开</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsIpSendBlackList']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<textarea name="smsIpSendBlackList" cols="30" rows="10" class="layui-input" style="height: 100px; padding: 10px">{{d.data.configs['smsIpSendBlackList']['sValue']}}</textarea>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">设置的ip地址将无法发送短信请求业务。,使用小写分割线“|”隔开</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsIpSendBlackList']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-5">
|
||||
<textarea name="smsIpSendBlackList" cols="30" rows="10" class="layui-input" style="height: 100px; padding: 10px">{{d.data.configs['smsIpSendBlackList']['sValue']}}</textarea>
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">设置的ip地址将无法发送短信请求业务。,使用小写分割线“|”隔开</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -118,7 +129,9 @@
|
||||
|
||||
<div class="layui-tab-item">
|
||||
<div class="layui-form coreshop-form">
|
||||
|
||||
<blockquote class="layui-elem-quote">
|
||||
凯信通短信为直发内容,所以不需要模板,直接填写需要发送的内容即可。
|
||||
</blockquote>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsTplForReg']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-12">
|
||||
@@ -213,6 +226,106 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-tab-item">
|
||||
<div class="layui-form coreshop-form">
|
||||
<blockquote class="layui-elem-quote">
|
||||
1、阿里云短信填写的为模板编码,不是填写具体内容。另外注意前面三个验证码的短信,变量必须设置为 ${code},否则无法发送。<br />
|
||||
2、阿里云短信模板编码,需要在阿里云短信服务中申请模板,然后填写模板编码。<br />
|
||||
3、阿里云的模板内容,可以参考凯信通我们内置的短信发送内容,仅供参考。
|
||||
</blockquote>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsAliYunTplForReg']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-3">
|
||||
<input type="text" name="smsAliYunTplForReg" value="{{d.data.configs['smsAliYunTplForReg']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">变量属性,${code}将替换代码中的数字验证码,请在模板中选择验证码短信</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsAliYunTplForLogin']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-3">
|
||||
<input type="text" name="smsAliYunTplForLogin" value="{{d.data.configs['smsAliYunTplForLogin']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">变量属性,${code}将替换代码中的数字验证码,请在模板中选择验证码短信</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsAliYunTplForVeri']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-3">
|
||||
<input type="text" name="smsAliYunTplForVeri" value="{{d.data.configs['smsAliYunTplForVeri']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">变量属性,${code}将替换代码中的数字验证码,请在模板中选择验证码短信</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsAliYunTplForCreateOrder']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-3">
|
||||
<input type="text" name="smsAliYunTplForCreateOrder" value="{{d.data.configs['smsAliYunTplForCreateOrder']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsAliYunTplForOrderPayed']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-3">
|
||||
<input type="text" name="smsAliYunTplForOrderPayed" value="{{d.data.configs['smsAliYunTplForOrderPayed']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsAliYunTplForRemindOrderPay']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-3">
|
||||
<input type="text" name="smsAliYunTplForRemindOrderPay" value="{{d.data.configs['smsAliYunTplForRemindOrderPay']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsAliYunTplForDeliveryNotice']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-3">
|
||||
<input type="text" name="smsAliYunTplForDeliveryNotice" value="{{d.data.configs['smsAliYunTplForDeliveryNotice']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsAliYunTplForAfterSalesPass']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-3">
|
||||
<input type="text" name="smsAliYunTplForAfterSalesPass" value="{{d.data.configs['smsAliYunTplForAfterSalesPass']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsAliYunTplForRefundSuccess']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-3">
|
||||
<input type="text" name="smsAliYunTplForRefundSuccess" value="{{d.data.configs['smsAliYunTplForRefundSuccess']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsAliYunTplForSellerOrderNotice']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-3">
|
||||
<input type="text" name="smsAliYunTplForSellerOrderNotice" value="{{d.data.configs['smsAliYunTplForSellerOrderNotice']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-form-mid layui-word-aux">此短信是用来通知商家有新的订单使用。</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{{d.data.configs['smsAliYunTplForCommon']['sKey']}}:</label>
|
||||
<div class="layui-input-inline layui-inline-3">
|
||||
<input type="text" name="smsAliYunTplForCommon" value="{{d.data.configs['smsAliYunTplForCommon']['sValue']}}" lay-verify="title" autocomplete="off" placeholder="" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"> </label>
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit="" lay-filter="save">保存更改</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -429,6 +429,14 @@
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.GoodController.GetCategories(System.Collections.Generic.List{CoreCms.Net.Model.Entities.CoreCmsGoodsCategory},System.Int32)">
|
||||
<summary>
|
||||
迭代方法
|
||||
</summary>
|
||||
<param name="oldCategories"></param>
|
||||
<param name="parentId"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:CoreCms.Net.Web.WebApi.Controllers.GoodController.GetGoodsPageList(CoreCms.Net.Model.FromBody.FMPageByWhereOrder)">
|
||||
<summary>
|
||||
根据查询条件获取分页数据
|
||||
|
||||
Reference in New Issue
Block a user