/// <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())); }
/// <summary> /// 构造函数 /// </summary> /// <param name="mConfig"></param> public WxMsgHandler(WxMsgConfig mConfig) : base(mConfig) { }
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); }