public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //签名验证 if (context.Request["id"] != null && context.Request["sign"] != null && context.Request["nonce_str"] != null) { string request_sign = context.Request["sign"]; string nonce_str = context.Request["nonce_str"]; string timestamp = context.Request["timestamp"]; int id = int.Parse(context.Request["id"]); if (AgentSign.CheckRequestSign(request_sign, nonce_str, timestamp, id)) { if (!CheckConfig(id)) { context.Response.Write("abort config"); context.Response.End(); } AccessTokenObject tokenObject = new Token().Get(); context.Response.Write(JsonHelper.ScriptSerialize(tokenObject, false)); } else { context.Response.Write("abort signature"); } } else { context.Response.Write("abort signature request"); } }
//ILog logs = LogManager.GetLogger("redirect_uri"); public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; string code = context.Request["code"]; string state = context.Request["state"]; string callback_url = context.Request["callback_url"]; if (!string.IsNullOrWhiteSpace(code) && !string.IsNullOrWhiteSpace(state) && callback_url.IndexOf("http://") != -1) { int id = int.Parse(state.Split(char.Parse("|"))[1]); callback_url = context.Server.UrlDecode(callback_url); Oauth2Token access_token = new Oauth2Token(); Oauth2 oauth2 = access_token.Get(code, state); string paras; string nonce_str, timestamp, sign; AgentSign.SetSign(id, out nonce_str, out timestamp, out sign); if (oauth2.scope == "snsapi_base") { paras = "openid=" + oauth2.openid + "&scope=" + oauth2.scope; paras += "&nonce_str=" + nonce_str + "×tamp=" + timestamp + "&sign=" + sign; callback_url = SetCallbackUrl(callback_url, paras); } else if (oauth2.scope == "snsapi_userinfo") { UserInfoApi userInfoEntity = new UserInfo().Get(oauth2.access_token, oauth2.openid); paras = "&scope=" + oauth2.scope + "&openid=" + userInfoEntity.openid + "&nickname=" + userInfoEntity.nickname + "&sex=" + userInfoEntity.sex; paras += "&city=" + userInfoEntity.city + "&province=" + userInfoEntity.province + "&country=" + userInfoEntity.country; paras += "&headimgurl=" + userInfoEntity.headimgurl + "&unionid=" + userInfoEntity.unionid; paras += "&nonce_str=" + nonce_str + "×tamp=" + timestamp + "&sign=" + sign; //logs.Fatal("paras:" + paras); callback_url = SetCallbackUrl(callback_url, paras); } //logs.Fatal("callback_url:" + callback_url); context.Response.Redirect(callback_url); } }
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //签名验证 if (context.Request["id"] != null && context.Request["sign"] != null && context.Request["nonce_str"] != null) { string request_sign = context.Request["sign"]; string nonce_str = context.Request["nonce_str"]; string timestamp = context.Request["timestamp"]; int id = int.Parse(context.Request["id"]); if (AgentSign.CheckRequestSign(request_sign, nonce_str, timestamp, id)) { if (context.Request["url"] == null) { context.Response.Write("abort request"); context.Response.End(); } string url = context.Request["url"]; string encode = context.Request["encode"]; if (string.IsNullOrWhiteSpace(encode)) { encode = "false"; } Signature signature = new Signature(); context.Response.Write(signature.Get(url, encode)); } else { context.Response.Write("abort signature"); } } else { context.Response.Write("abort signature request"); } }
public void ProcessRequest(HttpContext context) { //ILog logs = LogManager.GetLogger("index"); context.Response.ContentType = "text/plain"; //签名验证 if (context.Request["id"] != null && context.Request["sign"] != null && context.Request["nonce_str"] != null) { string request_sign = context.Request["sign"]; string nonce_str = context.Request["nonce_str"]; string timestamp = context.Request["timestamp"]; int id = int.Parse(context.Request["id"]); string sn = new GZH.CL.Config.AgentConfig().GetItem(id).sn; if (AgentSign.CheckRequestSign(request_sign, nonce_str, timestamp, id)) { if (context.Request["scope"] == null || context.Request["redirect"] == null) { context.Response.Write("abort request"); context.Response.End(); } if (!CheckConfig(id)) { context.Response.Write("abort config"); context.Response.End(); } string scope = context.Request["scope"]; string callback_url = context.Request["redirect"]; if (!string.IsNullOrWhiteSpace(scope) && callback_url.IndexOf("http://") != -1) { string state = scope == "snsapi_userinfo" ? "1" : "0"; state += "|" + id; string redirect_uri = "http://" + HttpContext.Current.Request.Url.Host + "/api/authorize/redirect_uri.ashx"; string requestUri = ConfigSetting.GetWeixinWeb().AuthorizeUrl; callback_url = context.Server.UrlEncode(callback_url); redirect_uri += "?callback_url=" + callback_url; requestUri += "?appid=" + ConfigSetting.GetWeixin().AppID; requestUri += "&redirect_uri=" + context.Server.UrlEncode(redirect_uri); requestUri += "&response_type=code&scope=" + scope + "&state=" + state + "#wechat_redirect"; context.Response.Redirect(requestUri); } } else { context.Response.Write("abort signature"); } } else { context.Response.Write("abort signature request"); } }