public ActionResult Get(PostModel postModel, string echostr) { string Token = "";//与微信公众账号后台的Token设置保持一致,区分大小写。 WxBaseConfigApp app = new WxBaseConfigApp(); string apiid = Request["apiid"]; if (string.IsNullOrEmpty(apiid)) { Response.Output.Write("参数非法"); } Token = app.GetWeiXinToken(apiid); if (Token == null || string.IsNullOrEmpty(Token)) { Response.Output.Write("不存在该微信号或账号已过期或已被禁用!"); Response.End(); } //get method - 仅在微信后台填写URL验证时触发 if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token)) { return(Content(echostr)); //返回随机字符串则表示验证通过 } else { return(Content("failed:" + postModel.Signature + "," + CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, Token) + "。" + "如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。")); } }
public void GetSignatureTest() { //2013-01-12 09:12:00 118.244.133.118 GET /weixin signature=335b26997f05c82243aad6b10a2d1853637e71a8&echostr=5833258582299191661×tamp=1357982061&nonce=1358161344 80 - 101.226.89.83 Mozilla/4.0 200 0 0 35 { var signature = "335b26997f05c82243aad6b10a2d1853637e71a8"; var echostr = "echostr"; var timestamp = "1357982061"; var nonce = "1358161344"; var token = "weixin"; var result = CheckSignature.GetSignature(timestamp, nonce, token); Assert.AreEqual(signature, result); } { var signature = "efa917e2445cc9f0aa4386ca92f96de5a242e24e"; var echostr = "5837835896451489886"; var timestamp = "1359208540"; var nonce = "1359227084"; var token = "huhujm"; var result = CheckSignature.GetSignature(timestamp, nonce, token); Assert.AreEqual(signature, result); } }
protected void Page_Load(object sender, EventArgs e) { string signature = Request["signature"]; string timestamp = Request["timestamp"]; string nonce = Request["nonce"]; string echostr = Request["echostr"]; if (Request.HttpMethod == "GET") { if (CheckSignature.Check(signature, timestamp, nonce, Token)) { Response.Write(echostr); } else { Response.Write("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "。" + "如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。"); } Response.End(); } else { if (!CheckSignature.Check(signature, timestamp, nonce, Token)) { Response.Write("参数错误!"); return; } var maxRecordCount = 10; var messageHandler = new CustomMessageHandler(Request.InputStream, maxRecordCount); messageHandler.Execute(); Response.Write(messageHandler.ResponseDocument.ToString()); Response.End(); } }
private readonly string Token = "dafeifei";//与微信公众账号后台的Token设置保持一致,区分大小写。 public void ProcessRequest(HttpContext context) { string signature = context.Request["signature"]; string timestamp = context.Request["timestamp"]; string nonce = context.Request["nonce"]; string echostr = context.Request["echostr"]; if (context.Request.HttpMethod == "GET") { //get method - 仅在微信后台填写URL验证时触发 if (CheckSignature.Check(signature, timestamp, nonce, Token)) { //WriteContent(echostr); //返回随机字符串则表示验证通过 context.Response.Output.Write(echostr); } else { //WriteContent("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token)); context.Response.Write("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token)); } } else { //判断Post或其他方式请求 } context.Response.End(); }
public void MessageContextRecordLimtTest() { //测试MessageContext的数量限制 var xml = string.Format(string.Format(xmlTextFormat, "测试限制"), DateTimeHelper.GetWeixinDateTime(DateTime.Now)); for (int i = 0; i < 100; i++) { Init(xml);//初始化 var timestamp = "itsafaketimestamp"; var nonce = "whateveryouwant"; var signature = CheckSignature.GetSignature(timestamp, nonce, WeixinController.Token); var postModel = new PostModel() { Signature = signature, Timestamp = timestamp, Nonce = nonce }; var actual = target.MiniPost(postModel) as FixWeixinBugWeixinResult; Assert.IsNotNull(actual); } Assert.AreEqual(1, MessageHandler <MessageContext <IRequestMessageBase, IResponseMessageBase> > .GlobalWeixinContext.MessageQueue.Count); var weixinContext = MessageHandler <MessageContext <IRequestMessageBase, IResponseMessageBase> > .GlobalWeixinContext.MessageQueue[0]; var recordCount = MessageHandler <MessageContext <IRequestMessageBase, IResponseMessageBase> > .GlobalWeixinContext.MaxRecordCount; Assert.AreEqual(recordCount, weixinContext.RequestMessages.Count); Assert.AreEqual(recordCount, weixinContext.ResponseMessages.Count); }
public override async Task <bool> GetCheckSignature(HttpContext context) { var postModel = GetPostModel(context); if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, postModel.Token)) { context.Response.ContentType = "text/plain;charset=utf-8"; var echostr = GetEchostr(context); if (string.IsNullOrEmpty(echostr)) { await context.Response.WriteAsync("未提供 echostr 参数!").ConfigureAwait(false); return(false); } else { await context.Response.WriteAsync(echostr).ConfigureAwait(false); return(true); } } else { context.Response.ContentType = "text/html;charset=utf-8"; var correctSignature = CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, postModel.Token); var msgTip = base.GetGetCheckFaildMessage(context, postModel.Signature, correctSignature); await context.Response.WriteAsync(msgTip); return(false); } }
public ActionResult Index(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce)) { return(Content(echostr));//返回随机字符串则表示验证通过 } return(Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce) + "。如果您在浏览器中看到这条信息,表明此Url可以填入微信后台。")); }
public ActionResult Get(PostModel postModel, string echostr) { if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token)) { return(base.Content(echostr)); } return(base.Content("failed:" + postModel.Signature + "," + CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, Token) + "。如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。")); }
public IActionResult Get(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce, _token)) { return(Content(echostr)); //返回随机字符串则表示验证通过 } return(Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, _token))); }
public ActionResult Get(PostModel postModel, string echostr, int id) { string token = SqlFactory.GetSqlhelper().SingleById <VoteInfos>(id).Token; if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, token)) { return(base.Content(echostr)); } return(base.Content("failed:" + postModel.Signature + "," + CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, token) + "。如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。")); }
public ActionResult Get(PostModel postModel, string echostr) { if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, WeixinSetting.Token)) { return(Content(echostr)); //返回随机字符串则表示验证通过 } return(Content("failed:" + postModel.Signature + "," + CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, WeixinSetting.Token) + "。" + "如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。")); }
/// <summary> /// 微信验证 /// </summary> /// <param name="signature"></param> /// <param name="timestamp"></param> /// <param name="nonce"></param> /// <param name="echostr"></param> /// <returns></returns> public ActionResult Entry(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce, _Token)) { return(Content(echostr)); } else { return(Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, _Token) + "。如果您在浏览器中看到这条信息,表明此Url可以填入微信后台。")); } }
public ActionResult Get(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce, Token)) { return(Content(echostr)); //返回随机字符串则表示验证通过 } else { return(Content($"failed:{signature},{CheckSignature.GetSignature(timestamp, nonce, Token)}。如果您在浏览器中看到这条信息,表明此Url可以填入微信后台。")); } }
public ActionResult Get(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce, Token)) { return(Content(echostr));//返回随机字符串则表示验证通过 } else { return(Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "。如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。")); } }
public void GetSignatureTest() { //取传入参数 string timestamp = "1357986928"; string nonce = "1357986928"; string token = "UscJpkc"; var signature = CheckSignature.GetSignature(timestamp, nonce, token); //a6a62a99a70b4ef26341b848395aca425b40f516 Assert.IsNotNull(signature); }
public ActionResult Get(PostModel postModel, string echostr) { if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, ConfigHelper.WeChatToken)) { return(Content(echostr)); //返回随机字符串则表示验证通过 } else { return(Content("failed:" + postModel.Signature + "," + CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, ConfigHelper.WeChatToken) + "。")); } }
public ActionResult Get(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce, Token)) { return(Content(echostr)); } else { return(Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "如果你们看见这条信息,表面此URL可以填入微信后台")); } }
public string Get(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce, Token)) { return(echostr);//返回随机字符串则表示验证通过 } else { return("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token)); } }
public ActionResult Get(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce, _senparcWeixinSetting.Token)) { return(Content(echostr)); //返回随机字符串则表示验证通过 } else { return(Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, _senparcWeixinSetting.Token))); } }
public ActionResult Get(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce, _token)) { return(Content(echostr));//返回随机字符串则表示验证通过 } else { string content = "failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, _token);// +"<a href='" + Url.RetechAction("Index", "Login", new { area = "" }) + "'>登录</a>"; return(Content(content)); } }
public ActionResult Index(int tenantId, string signature, string timestamp, string nonce, string echostr) { var token = WeChatConfigManager.Current.GetConfig(tenantId).Token; //get method - 仅在微信后台填写URL验证时触发 if (CheckSignature.Check(signature, timestamp, nonce, token)) { return(Content(echostr)); //返回随机字符串则表示验证通过 } return(Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, token) + "。" + "如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。")); }
public IActionResult Get(PostModel postModel, string echostr) { if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, Token)) { return(Ok(echostr)); //返回随机字符串则表示验证通过 } else { return(Ok("failed:" + postModel.Signature + "," + CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, Token) + "。" + "如果你在浏览器中看到这句话,说明此地址可以被作为微信小程序后台的Url,请注意保持Token一致。")); } }
public ActionResult Get([FromForm] PostModel postModel, string echostr) { if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, _miniProgramSetting.WxOpenToken)) { return(Content(echostr)); //返回随机字符串则表示验证通过 } else { return(Content( $"failed:{postModel.Signature},{CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, _miniProgramSetting.WxOpenToken)}。如果你在浏览器中看到这句话,说明此地址可以被作为微信小程序后台的Url,请注意保持Token一致。")); } }
public ActionResult Index(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce, Token)) { //返回随机字符串则表示验证通过 return(Content(echostr)); } else { return(Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token))); } }
public ActionResult Index(PostModel postModel, string echostr) { if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, WeixinManager.Token)) { return(Content(echostr)); //返回随机字符串则表示验证通过 } else { return (Content( $"failed: {postModel.Signature}, {CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, WeixinManager.Token)} 如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。")); } }
public static readonly string AppId = System.Configuration.ConfigurationManager.AppSettings[APPID]; //相当于一个秘钥 我们自己秘钥 可以配置的 // GET: WeiXin /// <summary> /// 验证消息的确来自微信服务器 /// </summary> /// <param name="pModel">封装post传过来的加密参数 /// @param signature:微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。 /// @param timestamp:时间戳 /// @param nonce:随机数 /// </param> /// <param name="echostr">随机字符串</param> public static string CheckToken(PostModel pModel, string echostr) { if (CheckSignature.Check(pModel.Signature, pModel.Timestamp, pModel.Nonce, Token)) { return(echostr); //返回随机字符串则表示验证通过 } else { return("failed:" + pModel.Signature + "," + CheckSignature.GetSignature(pModel.Timestamp, pModel.Nonce, Token) + "。如果您在浏览器中看到这条信息,表明此Url可以填入微信后台。"); } }
public ActionResult Get(string signature, string timestamp, string nonce, string echostr) { //获取请求域名 UrlRoot = Request.GetUrlRoot(); if (CheckSignature.Check(signature, timestamp, nonce, WechatMpSettings.Default.Token)) { return(Content(echostr)); //返回随机字符串则表示验证通过 } else { return(Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, WechatMpSettings.Default.Token) + "。如果您在浏览器中看到这条信息,表明此Url可以填入微信后台。")); } }
public ActionResult Get(PostModel postModel, string echostr) { GzhCfg gzh = null; string state = Request.QueryString["state"]; if (String.IsNullOrEmpty(state) == false) { dp2WeiXinService.Instance.WriteDebug("url参数state=" + state); gzh = dp2WeiXinService.Instance._gzhContainer.GetByAppName(state); if (gzh == null) { string tempError = "Get未找到公众号[" + state + "]的配置信息。"; dp2WeiXinService.Instance.WriteErrorLog(tempError); return(new WeixinResult(tempError)); } } else { gzh = dp2WeiXinService.Instance._gzhContainer.GetDefault(); } if (string.IsNullOrEmpty(postModel.AppId) == false) { gzh = dp2WeiXinService.Instance._gzhContainer.GetByAppId(postModel.AppId); dp2WeiXinService.Instance.WriteErrorLog("惊喜Get中有appId=" + postModel.AppId); } //GzhCfg gzh = dp2WeiXinService.Instance.gzhContainer.GetByAppId(postModel.AppId); //if (gzh == null) //{ // string tempError = "Get未找到公众号[" + postModel.AppId + "]的配置信息。"; // dp2WeiXinService.Instance.WriteErrorLog1(tempError); // return new WeixinResult(tempError); //} if (CheckSignature.Check(postModel.Signature, postModel.Timestamp, postModel.Nonce, gzh.token)) { string info = DumpPostModel(postModel); dp2WeiXinService.Instance.WriteDebug(info); return(Content(echostr)); //返回随机字符串则表示验证通过 } else { return(Content("failed:" + postModel.Signature + "," + CheckSignature.GetSignature(postModel.Timestamp, postModel.Nonce, gzh.token) + "。" + "如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。")); } }
public ActionResult Get(string signature, string timestamp, string nonce, string echostr) { if (CheckSignature.Check(signature, timestamp, nonce, Token)) { Loger.Current.Write("WeixinController.Get() CheckSignature.Check=true"); return(Content(echostr)); //返回随机字符串则表示验证通过 } else { Loger.Current.Write("WeixinController.Get() CheckSignature.Check=false"); return(Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "。" + "如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。")); } }
public Task <ActionResult> Get(string signature, string timestamp, string nonce, string echostr) { return(Task.Factory.StartNew(() => { if (CheckSignature.Check(signature, timestamp, nonce, Token)) { return echostr;//返回随机字符串则表示验证通过 } else { return "failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "。" + "如果你在浏览器中看到这句话,说明此地址可以被作为微信公众账号后台的Url,请注意保持Token一致。"; } }).ContinueWith <ActionResult>(task => Content(task.Result))); }