Example #1
0
        /// <summary>
        ///  加密消息体
        /// </summary>
        /// <param name="sReplyMsg"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        internal static ResultMo <string> EncryptMsg(string sReplyMsg, WxMsgConfig config)
        {
            string raw;

            try
            {
                raw = Cryptography.AesEncrypt(sReplyMsg, config.EncodingAesKey, config.AppId);
            }
            catch (Exception)
            {
                return(new ResultMo <string>(ResultTypes.InnerError, "加密响应消息体出错!"));
            }
            var date = DateTime.Now;

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


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

            if (string.IsNullOrEmpty(msgSigature))
            {
                return(new ResultMo <string>(ResultTypes.InnerError, "生成签名信息出错!"));
            }

            var sEncryptMsg = new StringBuilder();

            const string encryptLabelHead   = "<Encrypt><![CDATA[";
            const string encryptLabelTail   = "]]></Encrypt>";
            const string msgSigLabelHead    = "<MsgSignature><![CDATA[";
            const string timeStampLabelHead = "<TimeStamp><![CDATA[";

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

            sEncryptMsg.Append("<xml>").Append(encryptLabelHead).Append(raw).Append(encryptLabelTail);
            sEncryptMsg.Append(msgSigLabelHead).Append(msgSigature).Append("]]></MsgSignature>");
            sEncryptMsg.Append(timeStampLabelHead).Append(sTimeStamp).Append(timeStampLabelTail);
            sEncryptMsg.Append(nonceLabelHead).Append(sNonce).Append(nonceLabelTail);
            sEncryptMsg.Append("</xml>");

            return(new ResultMo <string>(sEncryptMsg.ToString()));
        }
Example #2
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="mConfig"></param>
 public WxMsgHandler(WxMsgConfig mConfig) : base(mConfig)
 {
 }
Example #3
0
 public WxCustomMsgHandler(WxMsgConfig mConfig = null) : base(mConfig)
 {
 }
 public WxAgentController(WxMsgConfig config) : base(config)
 {
 }
 /// <summary>
 ///  设置上下文配置信息
 /// </summary>
 /// <param name="config"></param>
 public static void SetContextConfig(WxMsgConfig config)
 {
     WxMsgBaseHandler.SetContextConfig(config);
 }