Пример #1
0
        /// <summary>
        /// 返回XML格式的响应消息
        /// </summary>
        /// <param name="encryptType">消息加密类型</param>
        /// <returns>返回XML格式的响应消息</returns>
        public string ToXml(MessageEncryptTypeEnum encryptType)
        {
            int WXBizMsgCrypt_OK = 0;
            //得到未加密的XML响应消息
            string xml = ToXml();

            //如果需要加密,加密消息
            if (encryptType == MessageEncryptTypeEnum.aes)
            {
                int         timeStamp = Utility.ToWeixinTime(CreateTime);
                Random      random    = new Random();
                string      nonce     = random.Next().ToString();
                AccountInfo account   = AccountInfoCollection.GetAccountInfo(FromUserName);
                if (account != null)
                {
                    WXBizMsgCrypt wxcpt      = new WXBizMsgCrypt(account.Token, account.EncodingAESKey, account.AppId);
                    string        xmlEncrypt = "";
                    //加密消息
                    if (wxcpt.EncryptMsg(xml, timeStamp.ToString(), nonce, ref xmlEncrypt) == WXBizMsgCrypt_OK)
                    {
                        return(xmlEncrypt);
                    }
                }
            }
            return(xml);
        }
Пример #2
0
        /// <summary>
        /// 解密消息
        /// </summary>
        /// <returns>返回解密之后的消息</returns>
        private string DecryptMessage(string content)
        {
            string      msg     = "";
            AccountInfo account = AccountInfoCollection.GetAccountInfo("zizaifan");

            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);
        }