Commit 3dfb4d24 by chuanbin.yao

Merge branch 'Product_WeComApi_tangquan_20220620' into 'Product'

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

See merge request !1
parents a22b8086 e00d7b76
......@@ -107,7 +107,7 @@ namespace Siger.WeComApi.Biz.service
/// 指令回调
/// </summary>
/// <returns></returns>
public string InstructCallback(HttpRequest request)
public string InstructCallback(HttpRequest request)
{
string responseContent = "";
string postString = GetXMLParameters(request); //xml数据解析
......@@ -234,21 +234,24 @@ namespace Siger.WeComApi.Biz.service
var msgType = (ResponseMsgType)Enum.Parse(typeof(ResponseMsgType), xmlDoc.Root.Element("MsgType").Value, true);
switch (msgType)
{
case ResponseMsgType.Text://文本消息
case ResponseMsgType.text://文本消息
responseMessage = ResponseMessageText(xmlDoc, timestamp, signature, sToken, sEncodingAESKey, sCorpID);
break;
case ResponseMsgType.Image:
case ResponseMsgType.image:
responseMessage = ResponseMessageImage();
break;
case ResponseMsgType.Voice:
case ResponseMsgType.voice:
responseMessage = ResponseMessageVoice();
break;
case ResponseMsgType.Video:
case ResponseMsgType.video:
responseMessage = ResponseMessageVideo();
break;
case ResponseMsgType.News:
case ResponseMsgType.news:
responseMessage = ResponseMessageNews();
break;
case ResponseMsgType.Event:
responseMessage = ResponseMessageEvent(xmlDoc, timestamp, signature, sToken, sEncodingAESKey, sCorpID);
break;
}
}
else if (xmlDoc.Root.Element("InfoType") != null)
......@@ -339,6 +342,36 @@ namespace Siger.WeComApi.Biz.service
{
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
......@@ -371,7 +404,7 @@ namespace Siger.WeComApi.Biz.service
return replyMsg;
}
private string InsertWeComCompany(string corpInfo)
private string InsertWeComCompany(string corpInfo)
{
JObject corpJson = (JObject)JsonConvert.DeserializeObject(corpInfo);
if (corpJson["errcode"] != null)
......@@ -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);
ResponseWeComUser company = JsonConvert.DeserializeObject<ResponseWeComUser>(userInfoJson.ToString());
......
......@@ -5,22 +5,57 @@
/// <summary>
/// 文本消息
/// </summary>
Text = 0,
text = 0,
/// <summary>
/// 图文消息
/// </summary>
News = 1,
news = 1,
/// <summary>
/// 图片消息
/// </summary>
Image = 3,
image = 3,
/// <summary>
/// 语音消息
/// </summary>
Voice = 4,
voice = 4,
/// <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