using Api.MessageReceive.Service;
|
using CommonUtil;
|
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Mvc;
|
using System;
|
using System.Collections.Generic;
|
using System.IO;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace Api.MessageReceive.Controllers
|
{
|
[Route(TopConstants.API_ROUTE)]
|
public class QwMessageController : ControllerBase
|
{
|
public static string _token = "u5tsOEqTNBwKcxgGoL";
|
public static string _aeskey = "XIkbuXu67vOwOcWWpZ1mAdOGxJn6Gs6B6YozPHgFAhE";
|
/// <summary>
|
/// 企业微信消息
|
/// </summary>
|
/// <returns></returns>
|
[AcceptVerbs("GET", "POST")]
|
public async Task<IActionResult> WxKfMessage()
|
{
|
if (HttpContext.Request.Method.ToLower() != "post")
|
{
|
#region 接口校验
|
QwBizMsgCrypt wxcpt = new QwBizMsgCrypt(_token, _aeskey, "");
|
string sVerifyMsgSig = HttpContext.Request.Query["msg_signature"];
|
string sVerifyTimeStamp = HttpContext.Request.Query["timestamp"];
|
string sVerifyNonce = HttpContext.Request.Query["nonce"];
|
string sVerifyEchoStr = HttpContext.Request.Query["echostr"].ToString();
|
int ret = 0;
|
string sEchoStr = "";
|
ret = wxcpt.VerifyURL(sVerifyMsgSig, sVerifyTimeStamp, sVerifyNonce, sVerifyEchoStr, ref sEchoStr);
|
if (ret != 0)
|
{
|
System.Console.WriteLine("ERR: VerifyURL fail, ret: " + ret);
|
|
return Content(sEchoStr);
|
}
|
return Content(sEchoStr);
|
|
#endregion
|
}
|
else
|
{
|
#region 解析官方请求参数
|
StreamReader reader = new StreamReader(HttpContext.Request.Body, Encoding.UTF8);
|
var result = reader.ReadToEndAsync().Result;
|
reader.Close();
|
string sReqMsgSig = HttpContext.Request.Query["msg_signature"];
|
string sReqTimeStamp = HttpContext.Request.Query["timestamp"];
|
string sReqNonce = HttpContext.Request.Query["nonce"];
|
WXBizMsgCrypt wxcpt = new WXBizMsgCrypt(_token, _aeskey, "");
|
|
string sMsg = ""; // 解析之后的明文
|
var code = wxcpt.DecryptMsg(sReqMsgSig, sReqTimeStamp, sReqNonce, result, ref sMsg);
|
LogUtil.Info($"服务商数据回调xmlConten---{sMsg}", $"qywx_msg_log日志");
|
#endregion
|
WxKfService.WxMessageHandle(sMsg, "wxkf_msg");
|
}
|
|
return Ok("success");
|
}
|
|
}
|
}
|