Esempio n. 1
0
        /// <summary>
        ///  加密消息体
        /// </summary>
        /// <param name="sReplyMsg"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        internal static StrResp EncryptMsg(string sReplyMsg, WXChatConfig config)
        {
            string encryptMsg;

            try
            {
                encryptMsg = Cryptography.AESEncrypt(sReplyMsg, config.EncodingAesKey, config.AppId);
            }
            catch (Exception)
            {
                return(new StrResp().WithResp(RespTypes.InnerError, "加密响应消息体出错!"));
            }

            var date = DateTime.Now;

            var sTimeStamp = date.ToUtcSeconds().ToString();
            var sNonce     = date.ToString("yyyyMMddHHssff");

            var msgSigature = GenerateSignature(config.Token, sTimeStamp, sNonce, encryptMsg);

            if (string.IsNullOrEmpty(msgSigature))
            {
                return(new StrResp().WithResp(RespTypes.InnerError, "生成签名信息出错!"));
            }

            var sEncryptMsg = new StringBuilder();

            const string encryptLabelHead = "<Encrypt><![CDATA[";
            const string encryptLabelTail = "]]></Encrypt>";

            const string msgSigLabelHead = "<MsgSignature><![CDATA[";
            const string msgSigLabelTail = "]]></MsgSignature>";

            const string timeStampLabelHead = "<TimeStamp><![CDATA[";
            const string timeStampLabelTail = "]]></TimeStamp>";

            const string nonceLabelHead = "<Nonce><![CDATA[";
            const string nonceLabelTail = "]]></Nonce>";

            sEncryptMsg.Append("<xml>")
            .Append(encryptLabelHead).Append(encryptMsg).Append(encryptLabelTail)
            .Append(msgSigLabelHead).Append(msgSigature).Append(msgSigLabelTail)

            .Append(timeStampLabelHead).Append(sTimeStamp).Append(timeStampLabelTail)
            .Append(nonceLabelHead).Append(sNonce).Append(nonceLabelTail)
            .Append("</xml>");

            return(new StrResp(sEncryptMsg.ToString()));
        }
 public WXAgentController(WXChatConfig config) : base(config)
 {
 }
Esempio n. 3
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="mConfig"></param>
 public WXChatHandler(WXChatConfig mConfig) : base(mConfig)
 {
 }
 public WXCustomMsgHandler(WXChatConfig mConfig = null) : base(mConfig)
 {
 }