Ejemplo n.º 1
0
        /// <summary>
        /// 解密消息
        /// </summary>
        /// <returns>返回解密之后的消息</returns>
        private string DecryptMessage(string content)
        {
            string      msg = "";
            XmlDocument doc = new XmlDocument();

            doc.LoadXml(content);
            XmlNode     root     = doc.FirstChild;
            string      userName = root["ToUserName"].InnerText;
            AccountInfo account  = AccountInfoCollection.GetAccountInfo(userName);

            if (account == null)
            {
                return(msg);
            }
            WXBizMsgCrypt wxcpt         = new WXBizMsgCrypt(account.Token, account.EncodingAESKey, account.AppId);
            string        msg_signature = RequestEx.TryGetQueryString("msg_signature", "", request);
            string        timestamp     = RequestEx.TryGetQueryString("timestamp", "", request);
            string        nonce         = RequestEx.TryGetQueryString("nonce", "", request);

            wxcpt.DecryptMsg(msg_signature, timestamp, nonce, content, ref msg);
            return(msg);
        }
Ejemplo n.º 2
0
        ///// <summary>
        ///// 构造函数
        ///// </summary>
        ///// <param name="request">HTTP请求</param>
        //public string RequestMessageHelper(HttpRequest request)
        //{
        //        this.request = request;
        //        //获取请求体内容
        //        string content = Utility.GetRequestContent(request);
        //        //获取消息加密类型
        //        encryptType = GetEncryptType();
        //        //如果已加密,解密消息
        //        string rawContent;
        //        if (encryptType == MessageEncryptTypeEnum.aes)
        //            rawContent = DecryptMessage(content);
        //        else
        //            rawContent = content;
        //       return rawContent;
        //}



        /// <summary>
        /// 得到消息加密类型
        /// </summary>
        /// <returns>返回消息加密类型</returns>
        private MessageEncryptTypeEnum GetEncryptType()
        {
            string encrypt_type = RequestEx.TryGetQueryString("encrypt_type", MessageEncryptTypeEnum.raw.ToString("g"), request);

            return((MessageEncryptTypeEnum)Enum.Parse(typeof(MessageEncryptTypeEnum), encrypt_type, true));
        }