Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
WeComApi
Overview
Overview
Details
Activity
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
changjin.pan
WeComApi
Commits
3dfb4d24
Commit
3dfb4d24
authored
Jun 21, 2022
by
chuanbin.yao
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'Product_WeComApi_tangquan_20220620' into 'Product'
企业微信 指令回调方法优化 See merge request
!1
parents
a22b8086
e00d7b76
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
82 additions
and
14 deletions
+82
-14
SigerWeComThirdService.cs
src/Siger.WeComApi.Biz/service/SigerWeComThirdService.cs
+42
-9
ResponseMsgType.cs
src/Siger.WeComApi.Common/Enums/WeComEnum/ResponseMsgType.cs
+40
-5
No files found.
src/Siger.WeComApi.Biz/service/SigerWeComThirdService.cs
View file @
3dfb4d24
...
@@ -107,7 +107,7 @@ namespace Siger.WeComApi.Biz.service
...
@@ -107,7 +107,7 @@ namespace Siger.WeComApi.Biz.service
/// 指令回调
/// 指令回调
/// </summary>
/// </summary>
/// <returns></returns>
/// <returns></returns>
public
string
InstructCallback
(
HttpRequest
request
)
public
string
InstructCallback
(
HttpRequest
request
)
{
{
string
responseContent
=
""
;
string
responseContent
=
""
;
string
postString
=
GetXMLParameters
(
request
);
//xml数据解析
string
postString
=
GetXMLParameters
(
request
);
//xml数据解析
...
@@ -234,21 +234,24 @@ namespace Siger.WeComApi.Biz.service
...
@@ -234,21 +234,24 @@ namespace Siger.WeComApi.Biz.service
var
msgType
=
(
ResponseMsgType
)
Enum
.
Parse
(
typeof
(
ResponseMsgType
),
xmlDoc
.
Root
.
Element
(
"MsgType"
).
Value
,
true
);
var
msgType
=
(
ResponseMsgType
)
Enum
.
Parse
(
typeof
(
ResponseMsgType
),
xmlDoc
.
Root
.
Element
(
"MsgType"
).
Value
,
true
);
switch
(
msgType
)
switch
(
msgType
)
{
{
case
ResponseMsgType
.
T
ext
:
//文本消息
case
ResponseMsgType
.
t
ext
:
//文本消息
responseMessage
=
ResponseMessageText
(
xmlDoc
,
timestamp
,
signature
,
sToken
,
sEncodingAESKey
,
sCorpID
);
responseMessage
=
ResponseMessageText
(
xmlDoc
,
timestamp
,
signature
,
sToken
,
sEncodingAESKey
,
sCorpID
);
break
;
break
;
case
ResponseMsgType
.
I
mage
:
case
ResponseMsgType
.
i
mage
:
responseMessage
=
ResponseMessageImage
();
responseMessage
=
ResponseMessageImage
();
break
;
break
;
case
ResponseMsgType
.
V
oice
:
case
ResponseMsgType
.
v
oice
:
responseMessage
=
ResponseMessageVoice
();
responseMessage
=
ResponseMessageVoice
();
break
;
break
;
case
ResponseMsgType
.
V
ideo
:
case
ResponseMsgType
.
v
ideo
:
responseMessage
=
ResponseMessageVideo
();
responseMessage
=
ResponseMessageVideo
();
break
;
break
;
case
ResponseMsgType
.
N
ews
:
case
ResponseMsgType
.
n
ews
:
responseMessage
=
ResponseMessageNews
();
responseMessage
=
ResponseMessageNews
();
break
;
break
;
case
ResponseMsgType
.
Event
:
responseMessage
=
ResponseMessageEvent
(
xmlDoc
,
timestamp
,
signature
,
sToken
,
sEncodingAESKey
,
sCorpID
);
break
;
}
}
}
}
else
if
(
xmlDoc
.
Root
.
Element
(
"InfoType"
)
!=
null
)
else
if
(
xmlDoc
.
Root
.
Element
(
"InfoType"
)
!=
null
)
...
@@ -339,6 +342,36 @@ namespace Siger.WeComApi.Biz.service
...
@@ -339,6 +342,36 @@ namespace Siger.WeComApi.Biz.service
{
{
return
"success"
;
return
"success"
;
}
}
/// <summary>
/// 事件消息
/// </summary>
/// <param name="xmlDoc"></param>
/// <param name="timestamp"></param>
/// <param name="nonce"></param>
/// <param name="sToken"></param>
/// <param name="sEncodingAESKey"></param>
/// <param name="sCorpID"></param>
/// <returns></returns>
public
string
ResponseMessageEvent
(
XDocument
xmlDoc
,
string
timestamp
,
string
nonce
,
string
sToken
,
string
sEncodingAESKey
,
string
sCorpID
)
{
string
FromUserName
=
xmlDoc
.
Root
.
Element
(
"FromUserName"
).
Value
;
string
ToUserName
=
xmlDoc
.
Root
.
Element
(
"ToUserName"
).
Value
;
string
AgentID
=
xmlDoc
.
Root
.
Element
(
"AgentID"
).
Value
;
string
xml
=
"<xml>"
;
xml
+=
"<ToUserName><![CDATA["
+
ToUserName
+
"]]></ToUserName>"
;
xml
+=
"<FromUserName><![CDATA["
+
FromUserName
+
"]]></FromUserName>"
;
xml
+=
"<CreateTime>"
+
GetCurrentTimeUnix
()
+
"</CreateTime>"
;
xml
+=
"<MsgType><![CDATA[event]]></MsgType>"
;
xml
+=
"<AgentID>"
+
AgentID
+
"</AgentID>"
;
xml
+=
"</xml>"
;
WXBizMsgCrypt
wxcpt
=
new
WXBizMsgCrypt
(
sToken
,
sEncodingAESKey
,
sCorpID
);
string
sEncryptMsg
=
""
;
// 加密后的可以直接回复用户的密文;
wxcpt
.
EncryptMsg
(
xml
,
timestamp
,
nonce
,
ref
sEncryptMsg
);
//返回
return
sEncryptMsg
;
}
#
endregion
#
endregion
...
@@ -371,7 +404,7 @@ namespace Siger.WeComApi.Biz.service
...
@@ -371,7 +404,7 @@ namespace Siger.WeComApi.Biz.service
return
replyMsg
;
return
replyMsg
;
}
}
private
string
InsertWeComCompany
(
string
corpInfo
)
private
string
InsertWeComCompany
(
string
corpInfo
)
{
{
JObject
corpJson
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
corpInfo
);
JObject
corpJson
=
(
JObject
)
JsonConvert
.
DeserializeObject
(
corpInfo
);
if
(
corpJson
[
"errcode"
]
!=
null
)
if
(
corpJson
[
"errcode"
]
!=
null
)
...
@@ -417,9 +450,9 @@ namespace Siger.WeComApi.Biz.service
...
@@ -417,9 +450,9 @@ namespace Siger.WeComApi.Biz.service
}
}
//获取当前用户所属公司的永久授权码
//获取当前用户所属公司的永久授权码
string
userCorpID
=
userInfoJson
[
"corpid"
].
ToString
();
string
userCorpID
=
userInfoJson
[
"corpid"
].
ToString
();
//若当前属于西格数据
//若当前属于西格数据
if
(
userCorpID
==
CorpID
)
if
(
userCorpID
==
CorpID
)
{
{
siger_wecom_company
sigerInfo
=
_sigerWeComCompanyRepository
.
CheckSigerSelfWeComCompany
(
userCorpID
);
siger_wecom_company
sigerInfo
=
_sigerWeComCompanyRepository
.
CheckSigerSelfWeComCompany
(
userCorpID
);
ResponseWeComUser
company
=
JsonConvert
.
DeserializeObject
<
ResponseWeComUser
>(
userInfoJson
.
ToString
());
ResponseWeComUser
company
=
JsonConvert
.
DeserializeObject
<
ResponseWeComUser
>(
userInfoJson
.
ToString
());
...
...
src/Siger.WeComApi.Common/Enums/WeComEnum/ResponseMsgType.cs
View file @
3dfb4d24
...
@@ -5,22 +5,57 @@
...
@@ -5,22 +5,57 @@
/// <summary>
/// <summary>
/// 文本消息
/// 文本消息
/// </summary>
/// </summary>
T
ext
=
0
,
t
ext
=
0
,
/// <summary>
/// <summary>
/// 图文消息
/// 图文消息
/// </summary>
/// </summary>
N
ews
=
1
,
n
ews
=
1
,
/// <summary>
/// <summary>
/// 图片消息
/// 图片消息
/// </summary>
/// </summary>
I
mage
=
3
,
i
mage
=
3
,
/// <summary>
/// <summary>
/// 语音消息
/// 语音消息
/// </summary>
/// </summary>
V
oice
=
4
,
v
oice
=
4
,
/// <summary>
/// <summary>
/// 视频消息
/// 视频消息
/// </summary>
/// </summary>
Video
=
5
video
=
5
,
/// <summary>
/// 文件消息
/// </summary>
file
=
6
,
/// <summary>
/// 位置消息
/// </summary>
location
=
7
,
/// <summary>
/// 链接消息
/// </summary>
link
=
8
,
/// <summary>
/// 名片消息
/// </summary>
business_card
=
9
,
/// <summary>
/// 小程序消息
/// </summary>
miniprogram
=
10
,
/// <summary>
/// 小程序消息
/// </summary>
msgmenu
=
11
,
/// <summary>
/// 事件消息
/// </summary>
Event
=
12
,
}
}
}
}
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