public static bool Check(string signature, string timestamp, string nonce, string Token, string encodingAESKey) { var sign = ""; WXBizMsgCrypt.GenarateSinature(Token, timestamp, nonce, encodingAESKey, ref sign); return(sign.Equals(signature)); }
/// <summary> /// 获取签名 /// </summary> /// <param name="token"></param> /// <param name="timeStamp"></param> /// <param name="nonce"></param> /// <param name="msgEncrypt"></param> /// <returns></returns> public static string GenarateSinature(string token, string timeStamp, string nonce, string msgEncrypt) { string msgSignature = null; var result = WXBizMsgCrypt.GenarateSinature(token, timeStamp, nonce, msgEncrypt, ref msgSignature); return(result == 0 ? msgSignature : result.ToString()); }
/// <summary> /// 加密消息 /// </summary> /// <param name="wxcpt"></param> /// <param name="token"></param> /// <param name="encryptMsg"></param> /// <returns></returns> public int EncryptMessage(WXBizMsgCrypt wxcpt, string token, out string encryptMsg) { encryptMsg = string.Empty; var serializeMessage = this.AsXmlString(); string timeSpan = DateTime.Now.Subtract(dateInit).TotalSeconds.ToString(); string replyMsg = serializeMessage; string msgSignature = string.Empty; string nonce = DateTime.Now.Ticks.ToString(); int encryptResult = wxcpt.EncryptMsg(replyMsg, timeSpan, nonce, ref encryptMsg); if (encryptResult != 0) { return(encryptResult); } int genSinatureResult = WXBizMsgCrypt.GenarateSinature(token, timeSpan, nonce, encryptMsg, ref msgSignature); return(genSinatureResult); }