Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
Education
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄奎
Education
Commits
9ee1a561
Commit
9ee1a561
authored
May 20, 2024
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
甲鹤上传调整
parent
16b39fe3
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
73 additions
and
74 deletions
+73
-74
MsgLogModule.cs
Edu.Module.System/MsgLogModule.cs
+1
-1
MessageCore.cs
Edu.ThirdCore/Message/MessageCore.cs
+58
-57
QueueHelper.cs
Edu.ThirdCore/Message/QueueHelper.cs
+10
-10
SMSService.cs
Edu.ThirdCore/Message/SMSService.cs
+3
-3
MsgController.cs
Edu.WebApi/Controllers/Public/MsgController.cs
+0
-1
Startup.cs
Edu.WebApi/Startup.cs
+1
-2
No files found.
Edu.Module.System/MsgLogModule.cs
View file @
9ee1a561
...
...
@@ -242,7 +242,7 @@ namespace Edu.Module.System
}
}
}
// ThirdCore.Message.SMSService.SendMsg("13551132417", PhoneMessage, "SMS_201722097", "印象之旅", "dysmsapi.aliyuncs.com", "LTAIwE7l9dImZSa3", "j47Ajn0d0WzUCIX8Biyj3P2r8QDltI", "cn-hangzhou");
}
...
...
Edu.ThirdCore/Message/MessageCore.cs
View file @
9ee1a561
...
...
@@ -17,14 +17,14 @@ namespace Edu.ThirdCore.Message
private
static
bool
IsFinish
=
true
;
public
static
void
Init
()
{
while
(
QueueHelper
.
Queue
.
Count
==
0
||
!
IsFinish
)
{
Thread
.
Sleep
(
1000
);
};
IsFinish
=
false
;
string
content
=
QueueHelper
.
Queue
.
Dequeue
()
as
string
;
Run
(
content
);
Init
();
//
while (QueueHelper.Queue.Count == 0 || !IsFinish)
//
{
//
Thread.Sleep(1000);
//
};
//
IsFinish = false;
//
string content = QueueHelper.Queue.Dequeue() as string;
//
Run(content);
//
Init();
}
public
static
void
Run
(
string
content
)
...
...
@@ -36,7 +36,7 @@ namespace Edu.ThirdCore.Message
switch
(
obj
[
"cmd"
].
ToString
().
ToLower
())
{
case
"sms"
:
SendSMS
(
obj
);
//
SendSMS(obj);
break
;
default
:
...
...
@@ -52,44 +52,44 @@ namespace Edu.ThirdCore.Message
private
static
void
SendSMS
(
JObject
obj
)
{
SendSmsRequest
request
=
new
SendSmsRequest
();
try
{
String
product
=
"Dysmsapi"
;
//短信API产品名称(短信产品名固定,无需修改)
String
domain
=
obj
[
"Domain"
].
ToString
();
//短信API产品域名(接口地址固定,无需修改)
String
accessKeyId
=
obj
[
"AccessKeyId"
].
ToString
();
String
accessKeySecret
=
obj
[
"AccessKeySecret"
].
ToString
();
IClientProfile
profile
=
DefaultProfile
.
GetProfile
(
obj
[
"RegionId"
].
ToString
(),
accessKeyId
,
accessKeySecret
);
DefaultProfile
.
AddEndpoint
(
obj
[
"RegionId"
].
ToString
(),
obj
[
"RegionId"
].
ToString
(),
product
,
domain
);
IAcsClient
acsClient
=
new
DefaultAcsClient
(
profile
);
//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
request
.
PhoneNumbers
=
obj
[
"phoneNumber"
].
ToString
();
request
.
SignName
=
obj
[
"SignName"
].
ToString
();
//aliSms["signName"].ToString();
//必填:短信模板-可在短信控制台中找到
request
.
TemplateCode
=
obj
[
"templateCode"
].
ToString
();
//可选:模板中的变量替换JSON串,如模板内容为"您的验证码为${code}"时,此处的值为
request
.
TemplateParam
=
obj
[
"templateParam"
].
ToString
();
//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
request
.
OutId
=
obj
[
"OutId"
].
ToString
();
//请求失败这里会抛ClientException异常
SendSmsResponse
sendSmsResponse
=
acsClient
.
GetAcsResponse
(
request
);
if
(!
sendSmsResponse
.
Code
.
Equals
(
"OK"
))
{
var
data
=
new
{
phoneNumber
=
obj
[
"phoneNumber"
].
ToString
(),
templateParam
=
obj
[
"templateParam"
].
ToString
(),
code
=
sendSmsResponse
.
Code
,
message
=
sendSmsResponse
.
Message
};
Common
.
Plugin
.
LogHelper
.
WriteInfo
(
string
.
Format
(
"SendSMS0_{0}"
,
Common
.
Plugin
.
JsonHelper
.
Serialize
(
data
)));
}
var
datatst
=
new
{
phoneNumber
=
obj
[
"phoneNumber"
].
ToString
(),
templateParam
=
obj
[
"templateParam"
].
ToString
(),
code
=
sendSmsResponse
.
Code
,
message
=
sendSmsResponse
.
Message
};
}
catch
(
Aliyun
.
Acs
.
Core
.
Exceptions
.
ServerException
ex
)
{
var
data
=
new
{
phoneNumber
=
obj
[
"phoneNumber"
].
ToString
(),
templateParam
=
obj
[
"templateParam"
].
ToString
(),
code
=
"NO"
,
message
=
ex
.
ToString
()
};
Common
.
Plugin
.
LogHelper
.
Write
(
ex
,
string
.
Format
(
"SendSMS1_{0}"
,
Common
.
Plugin
.
JsonHelper
.
Serialize
(
data
)));
}
catch
(
ClientException
ex
)
{
var
data
=
new
{
phoneNumber
=
obj
[
"phoneNumber"
].
ToString
(),
templateParam
=
obj
[
"templateParam"
].
ToString
(),
code
=
"NO"
,
message
=
ex
.
ToString
()
};
Common
.
Plugin
.
LogHelper
.
Write
(
ex
,
string
.
Format
(
"SendSMS2_{0}"
,
Common
.
Plugin
.
JsonHelper
.
Serialize
(
data
)));
}
//
SendSmsRequest request = new SendSmsRequest();
//
try
//
{
//
String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)
//
String domain = obj["Domain"].ToString(); //短信API产品域名(接口地址固定,无需修改)
//
String accessKeyId = obj["AccessKeyId"].ToString();
//
String accessKeySecret = obj["AccessKeySecret"].ToString();
//
IClientProfile profile = DefaultProfile.GetProfile(obj["RegionId"].ToString(), accessKeyId, accessKeySecret);
//
DefaultProfile.AddEndpoint(obj["RegionId"].ToString(), obj["RegionId"].ToString(), product, domain);
//
IAcsClient acsClient = new DefaultAcsClient(profile);
//
//必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
//
request.PhoneNumbers = obj["phoneNumber"].ToString();
//
request.SignName = obj["SignName"].ToString(); //aliSms["signName"].ToString();
//
//必填:短信模板-可在短信控制台中找到
//
request.TemplateCode = obj["templateCode"].ToString();
//
//可选:模板中的变量替换JSON串,如模板内容为"您的验证码为${code}"时,此处的值为
//
request.TemplateParam = obj["templateParam"].ToString();
//
//可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
//
request.OutId = obj["OutId"].ToString();
//
//请求失败这里会抛ClientException异常
//
SendSmsResponse sendSmsResponse = acsClient.GetAcsResponse(request);
//
if (!sendSmsResponse.Code.Equals("OK"))
//
{
//
var data = new { phoneNumber = obj["phoneNumber"].ToString(), templateParam = obj["templateParam"].ToString(), code = sendSmsResponse.Code, message = sendSmsResponse.Message };
//
Common.Plugin.LogHelper.WriteInfo( string.Format("SendSMS0_{0}", Common.Plugin.JsonHelper.Serialize(data)));
//
}
//
var datatst = new { phoneNumber = obj["phoneNumber"].ToString(), templateParam = obj["templateParam"].ToString(), code = sendSmsResponse.Code, message = sendSmsResponse.Message };
//
}
//
catch (Aliyun.Acs.Core.Exceptions.ServerException ex)
//
{
//
var data = new { phoneNumber = obj["phoneNumber"].ToString(), templateParam = obj["templateParam"].ToString(), code = "NO", message = ex.ToString() };
//
Common.Plugin.LogHelper.Write(ex, string.Format("SendSMS1_{0}", Common.Plugin.JsonHelper.Serialize(data)));
//
}
//
catch (ClientException ex)
//
{
//
var data = new { phoneNumber = obj["phoneNumber"].ToString(), templateParam = obj["templateParam"].ToString(), code = "NO", message = ex.ToString() };
//
Common.Plugin.LogHelper.Write(ex, string.Format("SendSMS2_{0}",Common.Plugin.JsonHelper.Serialize(data)));
//
}
}
...
...
@@ -102,16 +102,17 @@ namespace Edu.ThirdCore.Message
/// <returns></returns>
public
static
string
SendSMSStatus
(
string
phoneNumber
,
string
SendDate
,
string
BizId
,
string
Domain
,
string
AccessKeyId
,
string
AccessKeySecret
,
string
RegionId
)
{
String
product
=
"Dysmsapi"
;
//短信API产品名称(短信产品名固定,无需修改)
String
domain
=
Domain
;
// "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
String
accessKeyId
=
AccessKeyId
;
// aliSms["accessKeyId"].ToString();
String
accessKeySecret
=
AccessKeySecret
;
//aliSms["accessKeySecret"].ToString();
IClientProfile
profile
=
DefaultProfile
.
GetProfile
(
RegionId
,
accessKeyId
,
accessKeySecret
);
DefaultProfile
.
AddEndpoint
(
RegionId
,
RegionId
,
product
,
domain
);
IAcsClient
acsClient
=
new
DefaultAcsClient
(
profile
);
//拼接参数 返回url
string
url
=
$@"https://
{
domain
}
/?AccessKeyId=
{
accessKeyId
}
&Action=QuerySendDetails&CurrentPage=1&Format=JSON&PageSize=12&PhoneNumber=
{
phoneNumber
}
&RegionId=cn-hangzhou&SecureTransport=true&SendDate=
{
SendDate
}
&BizId=
{
BizId
}
&SignatureMethod=HMAC-SHA1&SignatureNonce=46edc0b6cc74e437aa0ba1703c71a99b&SignatureVersion=1.0&SourceIp=171.88.98.6&Timestamp=2019-09-25T02%3A12%3A35Z&Version=2017-05-25&Signature=Uvqz3E13092wPxNYUt3ytDojV50%3D"
;
return
url
;
//String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)
//String domain = Domain;// "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
//String accessKeyId = AccessKeyId;// aliSms["accessKeyId"].ToString();
//String accessKeySecret = AccessKeySecret; //aliSms["accessKeySecret"].ToString();
//IClientProfile profile = DefaultProfile.GetProfile(RegionId, accessKeyId, accessKeySecret);
//DefaultProfile.AddEndpoint(RegionId, RegionId, product, domain);
//IAcsClient acsClient = new DefaultAcsClient(profile);
////拼接参数 返回url
//string url = $@"https://{domain}/?AccessKeyId={accessKeyId}&Action=QuerySendDetails&CurrentPage=1&Format=JSON&PageSize=12&PhoneNumber={phoneNumber}&RegionId=cn-hangzhou&SecureTransport=true&SendDate={SendDate}&BizId={BizId}&SignatureMethod=HMAC-SHA1&SignatureNonce=46edc0b6cc74e437aa0ba1703c71a99b&SignatureVersion=1.0&SourceIp=171.88.98.6&Timestamp=2019-09-25T02%3A12%3A35Z&Version=2017-05-25&Signature=Uvqz3E13092wPxNYUt3ytDojV50%3D";
//return url;
return
""
;
}
/// <summary>
...
...
Edu.ThirdCore/Message/QueueHelper.cs
View file @
9ee1a561
...
...
@@ -25,16 +25,16 @@ namespace Edu.ThirdCore.Message
/// <param name="task"></param>
public
static
void
EnqueueTask
(
string
task
)
{
lock
(
locker
)
{
//同样的任务,不同时加入
IList
<
string
>
tasks
=
Queue
.
ToList
();
if
(
tasks
.
Count
(
p
=>
p
==
task
)
==
0
)
{
Queue
.
Enqueue
(
task
);
Monitor
.
PulseAll
(
locker
);
}
}
//
lock (locker)
//
{
//
//同样的任务,不同时加入
//
IList<string> tasks = Queue.ToList();
//
if (tasks.Count(p => p == task) == 0)
//
{
//
Queue.Enqueue(task);
//
Monitor.PulseAll(locker);
//
}
//
}
}
}
}
Edu.ThirdCore/Message/SMSService.cs
View file @
9ee1a561
...
...
@@ -40,7 +40,7 @@ namespace Edu.ThirdCore.Message
var
TemplateParam
=
new
{
code
};
obj
[
"OutId"
]
=
OutId
;
obj
[
"templateParam"
]
=
JsonConvert
.
SerializeObject
(
TemplateParam
);
QueueHelper
.
EnqueueTask
(
JsonConvert
.
SerializeObject
(
obj
));
//
QueueHelper.EnqueueTask(JsonConvert.SerializeObject(obj));
}
/// <summary>
...
...
@@ -65,7 +65,7 @@ namespace Edu.ThirdCore.Message
var
TemplateParam
=
new
{
content
};
obj
[
"OutId"
]
=
OutId
;
obj
[
"templateParam"
]
=
JsonConvert
.
SerializeObject
(
TemplateParam
);
QueueHelper
.
EnqueueTask
(
JsonConvert
.
SerializeObject
(
obj
));
//
QueueHelper.EnqueueTask(JsonConvert.SerializeObject(obj));
}
/// <summary>
...
...
@@ -90,7 +90,7 @@ namespace Edu.ThirdCore.Message
obj
[
"AccessKeySecret"
]
=
AccessKeySecret
;
obj
[
"OutId"
]
=
OutId
;
obj
[
"templateParam"
]
=
JsonConvert
.
SerializeObject
(
TemplateParam
);
QueueHelper
.
EnqueueTask
(
JsonConvert
.
SerializeObject
(
obj
));
//
QueueHelper.EnqueueTask(JsonConvert.SerializeObject(obj));
}
}
}
Edu.WebApi/Controllers/Public/MsgController.cs
View file @
9ee1a561
...
...
@@ -295,7 +295,6 @@ namespace Edu.WebApi.Controllers.Public
msgLogModule
.
SendMsg
(
PhoneMessage
,
Common
.
Enum
.
System
.
BaseTemplateTypeEnum
.
OrderSuccess
,
msgLogModel
);
// ThirdCore.Message.SMSService.SendMsg("13551132417", PhoneMessage, "SMS_201722097", "印象之旅", "dysmsapi.aliyuncs.com", "LTAIwE7l9dImZSa3", "j47Ajn0d0WzUCIX8Biyj3P2r8QDltI", "cn-hangzhou");
return
ApiResult
.
Success
(
""
);
}
...
...
Edu.WebApi/Startup.cs
View file @
9ee1a561
...
...
@@ -111,8 +111,7 @@ namespace Edu.WebApi
//启动信息发送
// Task.Run(() => MessageCore.Init());
Task
.
Run
(()
=>
MessageCore
.
Init
());
//Task.Run(() => MessageCore.Init());
app
.
UseEndpoints
(
endpoints
=>
{
endpoints
.
MapHub
<
MessageCenterHub
>(
"/messagecenter"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment