【优化】调整短信发送回调xml到json格式,并直接返回发送失败后的异常提示。

This commit is contained in:
jianweie
2023-04-03 16:28:12 +08:00
parent f1a72ac922
commit 5c3e63593f
4 changed files with 98 additions and 15 deletions

View File

@@ -44,7 +44,7 @@ namespace CoreCms.Net.IServices
/// <param name="mobile"></param>
/// <param name="contentBody"></param>
/// <param name="smsOptions"></param>
Task<string> SendSms(string mobile, string contentBody, SmsOptions smsOptions);
Task<SMSReturnData> SendSms(string mobile, string contentBody, SmsOptions smsOptions);
/// <summary>
/// 校验短信验证码

View File

@@ -12729,6 +12729,41 @@
短信签名
</summary>
</member>
<member name="T:CoreCms.Net.Model.ViewModels.Sms.SMSReturnData">
<summary>
短信发送回调结果
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SMSReturnData.ReturnStatus">
<summary>
调用结果(调用结果:success为成功faild为失败
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SMSReturnData.Message">
<summary>
调用信息调用成功返回OK失败显示失败原因具体原因见下表
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SMSReturnData.RemainPoint">
<summary>
账户余额
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SMSReturnData.TaskID">
<summary>
任务序号每次任务对应唯一的任务id
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SMSReturnData.SuccessCounts">
<summary>
号码个数(发送号码的个数)
</summary>
</member>
<member name="P:CoreCms.Net.Model.ViewModels.Sms.SMSReturnData.IsSuccess">
<summary>
是否成功
</summary>
</member>
<member name="T:CoreCms.Net.Model.ViewModels.UI.AdminUiCallBack">
<summary>
LayUIAdmin后端UI回调Json实体

View File

@@ -46,4 +46,42 @@ namespace CoreCms.Net.Model.ViewModels.Sms
/// </summary>
public string Signature { get; set; }
}
/// <summary>
/// 短信发送回调结果
/// </summary>
public class SMSReturnData
{
/// <summary>
/// 调用结果(调用结果:success为成功faild为失败
/// </summary>
public string ReturnStatus { set; get; }
/// <summary>
/// 调用信息调用成功返回OK失败显示失败原因具体原因见下表
/// </summary>
public string Message { set; get; }
/// <summary>
/// 账户余额
/// </summary>
public int RemainPoint { set; get; }
/// <summary>
/// 任务序号每次任务对应唯一的任务id
/// </summary>
public int TaskID { set; get; }
/// <summary>
/// 号码个数(发送号码的个数)
/// </summary>
public int SuccessCounts { set; get; }
/// <summary>
/// 是否成功
/// </summary>
public bool IsSuccess { get; set; } = false;
}
}

View File

@@ -26,6 +26,7 @@ using Microsoft.Extensions.Options;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SqlSugar;
using static SKIT.FlurlHttpClient.Wechat.Api.Models.WxaApiUserLogSearchResponse.Types.Data.Types.RealtimeLog.Types;
namespace CoreCms.Net.Services
@@ -108,10 +109,10 @@ namespace CoreCms.Net.Services
await _dal.InsertAsync(oldLog);
}
var str = await SendSms(oldLog.mobile, oldLog.contentBody, smsOptions);
jm.status = true;
//jm.data = str;
jm.msg = "短信发送成功";
var result = await SendSms(oldLog.mobile, oldLog.contentBody, smsOptions);
jm.status = result.IsSuccess;
jm.msg = result.IsSuccess ? "发送成功" : result.Message;
return jm;
}
@@ -155,24 +156,34 @@ namespace CoreCms.Net.Services
/// <param name="mobile"></param>
/// <param name="contentBody"></param>
/// <param name="smsOptions">配置文件</param>
public async Task<string> SendSms(string mobile, string contentBody, SmsOptions smsOptions)
public async Task<SMSReturnData> SendSms(string mobile, string contentBody, SmsOptions smsOptions)
{
if (smsOptions.Enabled)
{
var str = await smsOptions.ApiUrl.PostUrlEncodedAsync(new
var result = await smsOptions.ApiUrl.PostUrlEncodedAsync(new
{
action = "send",
userid = smsOptions.UserId,
account = smsOptions.Account,
password = smsOptions.Password,
mobile = mobile,
mobile,
content = "【" + smsOptions.Signature + "】" + contentBody,
}).ReceiveString();
return str;
rt = "json"
}).ReceiveJson<SMSReturnData>();
result.IsSuccess = result.ReturnStatus == "success";
return result;
}
else
{
return "短信接口未开启";
var result = new SMSReturnData()
{
ReturnStatus = "faild",
Message = "短信功能未开启",
RemainPoint = 0,
TaskID = 0,
SuccessCounts = 0
};
return result;
}
}
#endregion
@@ -354,11 +365,10 @@ namespace CoreCms.Net.Services
await _dal.InsertAsync(oldLog);
var result = SendSms(oldLog.mobile, oldLog.contentBody, smsOptions);
var result = await SendSms(oldLog.mobile, oldLog.contentBody, smsOptions);
jm.status = true;
jm.msg = "发送成功";
//jm.data = result;
jm.status = result.IsSuccess;
jm.msg = result.IsSuccess ? "发送成功" : result.Message;
return jm;
}