/// <summary> /// 将响应写入响应流。 /// </summary> public void Response(bool end = true) { var response = HttpContext.Current.Response; var request = HttpContext.Current.Request; if (response.IsClientConnected) { var text = ToXml(); if (WeChatConfig.IsEncrypt()) { var appId = WeChatConfig.GetOpenAppId(); var token = WeChatConfig.GetOpenToken(); var encodingAesKey = WeChatConfig.GetOpenDesKey(); var sMsg = "";//加密后的内容 var msg = new WXBizMsgCrypt(token, encodingAesKey, appId); var ret = msg.EncryptMsg(text, request.QueryString["timestamp"], request.QueryString["nonce"], ref sMsg); //var ret = msg.DecryptMsg(request.QueryString["msg_signature"], request.QueryString["timestamp"], request.QueryString["nonce"], text, ref sMsg); LogHelper.Debug(string.Format("结果代码:{0}\r\n加密前内容:{1}\r\n加密后内容:{2}\r\nmsg_signature:{3}\r\ntimestamp:{4}\r\nnonce:{5}", ret, text, sMsg, request.QueryString["msg_signature"], request.QueryString["timestamp"], request.QueryString["nonce"]), "微信CallBack_"); text = sMsg; } response.Write(text); if (end) { response.Flush(); response.Close(); } } }
/// <summary> /// /// </summary> /// <returns></returns> public static ReceiveMsg ParseReceiveMsg() { var request = HttpContext.Current.Request; var sr = new StreamReader(request.InputStream); LogHelper.Debug("开始sr.ReadToEnd()", "微信CallBack_"); var text = sr.ReadToEnd(); LogHelper.Debug("text:" + text, "微信CallBack_"); if (WeChatConfig.IsEncrypt()) { var appId = WeChatConfig.GetOpenAppId(); var token = WeChatConfig.GetOpenToken(); var encodingAesKey = WeChatConfig.GetOpenDesKey(); var sMsg = "";//解密后的内容 var msg = new WXBizMsgCrypt(token, encodingAesKey, appId); var ret = msg.DecryptMsg(request.QueryString["msg_signature"], request.QueryString["timestamp"], request.QueryString["nonce"], text, ref sMsg); LogHelper.Debug(string.Format("结果代码:{0}\r\n解密前内容:{1}\r\n解密后内容:{2}\r\nmsg_signature:{3}\r\ntimestamp:{4}\r\nnonce:{5}", ret, text, sMsg, request.QueryString["msg_signature"], request.QueryString["timestamp"], request.QueryString["nonce"]), "微信CallBack_"); text = sMsg; } var result = Parse(text); return(result); }