/// <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) { }
/// <summary> /// 构造函数 /// </summary> /// <param name="mConfig"></param> public WXChatHandler(WXChatConfig mConfig) : base(mConfig) { }
public WXCustomMsgHandler(WXChatConfig mConfig = null) : base(mConfig) { }