/// <summary> /// 消息处理入口 /// </summary> /// <param name="contentXml">内容信息</param> /// <param name="signature">签名信息</param> /// <param name="timestamp">时间戳</param> /// <param name="nonce">随机字符创</param> /// <param name="echostr">验证服务器参数,如果存在则只进行签名验证,并将在结果data中返回</param> /// <returns>消息结果,Data为响应微信数据,如果出错Message为错误信息</returns> public Resp <string> Process(string contentXml, string signature, string timestamp, string nonce, string echostr) { // 一. 检查是否是服务器验证 if (!string.IsNullOrEmpty(echostr)) { return(CheckServerValid(signature, timestamp, nonce, echostr)); } // 二. 正常消息处理 var checkRes = PrepareExecute(contentXml, signature, timestamp, nonce); if (!checkRes.IsSuccess()) { return(new Resp <string>().WithResp(checkRes)); //checkRes.ConvertToResult<string>(); } var contextRes = Execute(checkRes.data); if (!contextRes.IsSuccess()) { return(new Resp <string>().WithResp(contextRes));// contextRes.ConvertToResult<string>(); } var resultString = contextRes.data.ReplyMsg.ToReplyXml(); if (ApiConfig.SecurityType != WXSecurityType.None && !string.IsNullOrEmpty(contextRes.data.ReplyMsg.MsgType)) { return(WXChatHelper.EncryptMsg(resultString, ApiConfig)); } return(new Resp <string>(resultString)); }
/// <summary> /// 消息处理入口 /// </summary> /// <param name="contentXml">内容信息</param> /// <param name="signature">签名信息,请注意不是[msg_signature]</param> /// <param name="msg_signature">消息体签名</param> /// <param name="timestamp">时间戳</param> /// <param name="nonce">随机字符创</param> /// <param name="echostr">验证服务器参数,如果存在则只进行签名验证,并将在结果data中返回</param> /// <returns>消息结果,Data为响应微信数据,如果出错Message为错误信息</returns> public async Task <StrResp> Process(string contentXml, string signature, string msg_signature, string timestamp, string nonce, string echostr) { if (string.IsNullOrEmpty(contentXml) || string.IsNullOrEmpty(signature) || string.IsNullOrEmpty(timestamp) || string.IsNullOrEmpty(nonce)) { return(new StrResp().WithResp(RespTypes.ParaError, "消息相关参数错误!")); } var appConfigRes = await GetMeta(); if (!appConfigRes.IsSuccess()) { return(new StrResp().WithResp(appConfigRes)); } var appConfig = appConfigRes.data; // 一. 检查是否是微信服务端首次地址配置验证 if (!string.IsNullOrEmpty(echostr)) { return(CheckServerValid(appConfig, signature, timestamp, nonce, echostr)); } var checkRes = Prepare(appConfig, contentXml, signature, msg_signature, timestamp, nonce); if (!checkRes.IsSuccess()) { return(new StrResp().WithResp(checkRes)); } var contextRes = await Processing(checkRes.data); if (!contextRes.IsSuccess()) { return(new StrResp().WithResp(contextRes)); } var resultString = contextRes.data.ReplyMsg.ToReplyXml(); if (appConfig.SecurityType != WXSecurityType.None && !string.IsNullOrEmpty(contextRes.data.ReplyMsg.MsgType)) { return(WXChatHelper.EncryptMsg(resultString, appConfig)); } return(new StrResp(resultString)); }