Commit e00d7b76 by quan.tang

企业微信 指令回调方法优化

parent a22b8086
...@@ -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.Text://文本消息 case ResponseMsgType.text://文本消息
responseMessage = ResponseMessageText(xmlDoc, timestamp, signature, sToken, sEncodingAESKey, sCorpID); responseMessage = ResponseMessageText(xmlDoc, timestamp, signature, sToken, sEncodingAESKey, sCorpID);
break; break;
case ResponseMsgType.Image: case ResponseMsgType.image:
responseMessage = ResponseMessageImage(); responseMessage = ResponseMessageImage();
break; break;
case ResponseMsgType.Voice: case ResponseMsgType.voice:
responseMessage = ResponseMessageVoice(); responseMessage = ResponseMessageVoice();
break; break;
case ResponseMsgType.Video: case ResponseMsgType.video:
responseMessage = ResponseMessageVideo(); responseMessage = ResponseMessageVideo();
break; break;
case ResponseMsgType.News: case ResponseMsgType.news:
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());
......
...@@ -5,22 +5,57 @@ ...@@ -5,22 +5,57 @@
/// <summary> /// <summary>
/// 文本消息 /// 文本消息
/// </summary> /// </summary>
Text = 0, text = 0,
/// <summary> /// <summary>
/// 图文消息 /// 图文消息
/// </summary> /// </summary>
News = 1, news = 1,
/// <summary> /// <summary>
/// 图片消息 /// 图片消息
/// </summary> /// </summary>
Image = 3, image = 3,
/// <summary> /// <summary>
/// 语音消息 /// 语音消息
/// </summary> /// </summary>
Voice = 4, voice = 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,
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment