Example #1
0
        /// <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();
                }
            }
        }
Example #2
0
        /// <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);
        }