public ActionResult Index() { //ParkCarDerateServices.QueryBySellerIdAndIORecordId("46f54c5e-ada9-4efe-9552-a8560130a960", "6fe28c13-716a-48d1-b1ba-a8ee00061572"); //string geng = Server.MapPath("~/TempFile/20180526"); //string savepath = Server.MapPath("~/TempFile/201805263.zip"); //ZipHelper.ZipFiles(geng, savepath); Stopwatch watch = Stopwatch.StartNew();//创建一个监听器 for (var i = 0; i <= 100; i++) { TxtLogServices.WriteTxtLogEx("Test", "开始"); var user = WeiXinAccountService.QueryWXByOpenId("oussCwE6unIvKaG-1wec-B7n3J0Q"); //DateTime ts2 = DateTime.Now; //TimeSpan ts3 = ts1.Subtract(ts2).Duration(); TxtLogServices.WriteTxtLogEx("Test", "结束"); Thread.Sleep(10000); //DateTime ts1 = DateTime.Now; //var user = WeiXinAccountService.QueryWXByOpenId("oussCwE6unIvKaG-1wec-B7n3J0Q"); ////DateTime ts2 = DateTime.Now; ////TimeSpan ts3 = ts1.Subtract(ts2).Duration(); //TxtLogServices.WriteTxtLogEx("Test", watch.ElapsedMilliseconds.ToString()); //Thread.Sleep(10000); } watch.Stop(); var redirectUrl = "http://park.xinfu.info/r/ParkingPayment_Index_moduleid=2^cid=f50a5dee-d098-4100-a370-a7ca017ab4cf"; string strRedirectUrl = HttpUtility.UrlEncode(redirectUrl); //WXApiConfigServices.QueryWXApiConfig //WX_ApiConfig confing = WXApiConfigServices.QueryWXApiConfig("83495fa0-611f-497a-9e10-a78c009f66cd"); string s = string.Empty; //cd1e590c-e91e-45f7-b7d6-a75300e652a9^pn=ÔÁB88765 //byte[] result = WXQRCodeServices.GenerateByteQRCode("http://ykt.bsgoal.net.cn", "cd1e590c-e91e-45f7-b7d6-a75300e652a9", "粤B88765", 430, ""); //System.IO.MemoryStream ms = new System.IO.MemoryStream(result); //System.Drawing.Image img = System.Drawing.Image.FromStream(ms); //string filePath = string.Format("/Uploads/QRCode/{0}.{1}", "test111111111", "jpg"); //string absolutePath = System.Web.HttpContext.Current.Server.MapPath(filePath); //img.Save(absolutePath, ImageFormat.Jpeg); //DateTime t1 = DateTime.Now.AddMinutes(-10).AddSeconds(-2); //DateTime t2 = DateTime.Now; //string s = t1.GetParkingDuration(t2); //string s = "1 2 34 5566".PlateNumberToUpper(); //JsonObject obj = new JsonObject(); //PlatformOrderBLL.ManualRefund(123123, ""); //string v = XmlConfig.GetValue("PromptAttentionPage"); //string openid = "odvkywSnlKr8anm3ddoIcredwvN0"; //string url = "http://wx.qlogo.cn/mmopen/gKlic31XKbJ7BOJyEvicpgpW0ym5rfqGS0ibBSWLVOlDaSm4QZ1vCqEAxKohVtuj3fEn1vHfia6Y4fXEN9zXhxrhuRmMgoELyBll/0"; //WeiXinBaseInfo.DownloadHeadImg(openid, url); //RoutematrixService.GetRoutematrix("113.977295", "22.731472", "113.687295", "22.761472"); //List<BaseParkinfo> parks = QueryParkingService.QueryParkinfo("22.735069".ToDouble(), "113.988769".ToDouble(), 4000); //WX_ApiConfig config = GetApiConfig("moduleid=2^cid=0642cbb1-d55d-4629-855d-a73c0100397b"); return(View()); }
public override void OnExecuting() { try { user = WeiXinAccountService.QueryWXByOpenId(OpenId); if (user == null || (WxUserState)user.FollowState == WxUserState.UnAttention) { bool IsNewAdd = user == null; user = WxUserInfo.GetWxUserBaseInfo(config, OpenId); if (user == null) { TxtLogServices.WriteTxtLogEx("WeiXinConversation", "拉取微信用户信息失败,OPENID:{0}", OpenId); return; } user.OpenID = OpenId; user.UserType = 0; user.FollowState = (int)WxUserState.Attention; user.CompanyID = config.CompanyID; bool result = false; if (IsNewAdd) { TxtLogServices.WriteTxtLogEx("WeiXinConversation", "RegisterAccount"); result = WeiXinAccountService.RegisterAccount(user); TxtLogServices.WriteTxtLogEx("WeiXinConversation", string.Format("RegisterAccount Result:{0}", result ? "1" : "0")); } else { TxtLogServices.WriteTxtLogEx("WeiXinConversation", "EditWXInfo"); result = WeiXinAccountService.EditWXInfo(user); TxtLogServices.WriteTxtLogEx("WeiXinConversation", string.Format("EditWXInfo Result:{0}", result ? "1" : "0")); } if (result) { user = WeiXinAccountService.QueryWXByOpenId(OpenId); } string resultDes = result ? "成功" : "失败"; TxtLogServices.WriteTxtLogEx("WeiXinConversation", "保存微信用户信息{0},OPENID:{1}", resultDes, OpenId); } else { //每7天或头像为空时更新一次微信用户信息 if (user.LastSubscribeDate < DateTime.Now.AddDays(-7) || string.IsNullOrWhiteSpace(user.Headimgurl)) { WX_Info newUser = WxUserInfo.GetWxUserBaseInfo(config, OpenId); if (newUser == null) { TxtLogServices.WriteTxtLogEx("WeiXinConversation", "更新时拉取微信用户信息失败,OPENID:{0}", OpenId); return; } TxtLogServices.WriteTxtLogEx("WeiXinConversation", "Update"); newUser.AccountID = user.AccountID; newUser.OpenID = OpenId; newUser.UserType = 0; newUser.CompanyID = config.CompanyID; bool result = WeiXinAccountService.EditWXInfo(newUser); TxtLogServices.WriteTxtLogEx("WeiXinConversation", string.Format("Update Result:{0}", result ? "1" : "0")); } } } catch (Exception ex) { ExceptionsServices.AddExceptions(ex, string.Format("创建微信账号或者更新微信账号信息失败,OPENID:{0}", OpenId), LogFrom.WeiXin); TxtLogServices.WriteTxtLogEx("WeiXinConversation", ex); } }
public ActionResult Index(string id, string code, string state) { try { ClearSystemCache(); WX_ApiConfig config = GetApiConfig(id); if (config == null || string.IsNullOrWhiteSpace(config.AppId) || string.IsNullOrWhiteSpace(config.AppSecret) || string.IsNullOrWhiteSpace(config.Domain) || string.IsNullOrWhiteSpace(config.SystemName)) { return(RedirectToAction("Index", "ErrorPrompt", new { message = "获取微信基础信息失败" })); } if (!config.Status) { return(RedirectToAction("Index", "ErrorPrompt", new { message = "该公众账号暂停使用,请稍后再试!" })); } Session["CurrLoginWeiXinApiConfig"] = config; if (string.IsNullOrEmpty(id)) { id = "ParkingPayment_Index"; } if (Request.UserAgent != null && !Request.UserAgent.ToLower().Contains("micromessenger")) { return(RedirectToAction("Index", "ErrorPrompt", new { message = "请在微信中打开" })); } if (string.IsNullOrEmpty(state)) { var redirectUri = config.Domain; if (string.IsNullOrWhiteSpace(redirectUri)) { return(RedirectToAction("Index", "ErrorPrompt", new { message = "获取域名配置信息失败" })); } if (redirectUri != null) { redirectUri = redirectUri.IndexOf("http://", StringComparison.Ordinal) < 0 ? string.Format("http://{0}", redirectUri) : redirectUri; redirectUri = string.Format("{0}/r/{1}", redirectUri, id); } TxtLogServices.WriteTxtLogEx("RedirectHandle", "获取微信OpenId请求redirectUri:{0}", redirectUri); string url = WxAdvApi.GetAuthorizeUrl(config.AppId, redirectUri, "1", OAuthScope.snsapi_base); TxtLogServices.WriteTxtLogEx("RedirectHandle", "获取微信OpenId请求url:{0}", url); return(Redirect(url)); } TxtLogServices.WriteTxtLogEx("RedirectHandle", "state不为空进入,id:{0}, code:{1}, state:{2}", id, code, state); if (string.IsNullOrEmpty(code)) { return(RedirectToAction("Index", "ErrorPrompt", new { message = "微信获取授权失败,请重新进入或请联系管理员" })); } var accessToken = WxAdvApi.GetAccessToken(config.AppId, config.AppSecret, code); TxtLogServices.WriteTxtLogEx("RedirectHandle", "调用微信的AccessToken接口:openid:{0}, access_token:{1}", accessToken.openid, accessToken.access_token); var user = WeiXinAccountService.QueryWXByOpenId(accessToken.openid); string s = user == null ? "user is null" : "user is not null"; TxtLogServices.WriteTxtLogEx("RedirectHandle", s); if (user != null) { TxtLogServices.WriteTxtLogEx("RedirectHandle", "关注状态:{0}", ((WxUserState)user.FollowState).GetDescription()); } if (user == null || (WxUserState)user.FollowState == WxUserState.UnAttention) { return(RedirectAttentionPage(config.CompanyID, "请先关注公众账号")); } //添加登陆 Response.Cookies.Add(new HttpCookie("SmartSystem_WeiXinOpenId", accessToken.openid)); TxtLogServices.WriteTxtLogEx("RedirectHandle", "获取OpenId成功:openid:{0}", accessToken.openid); //登录APP string openId = accessToken.openid; string sToken = ""; VerifyCode verify = wxApi.getThirdLogin(openId, openId); //第三方登录 TxtLogServices.WriteTxtLogEx("RedirectHandle", "APP用户自动登录,id:{0},Status:{1} ", openId, verify.Status); if (verify.Status == 1) { TxtLogServices.WriteTxtLogEx("RedirectHandle", "APP用户自动登录成功,id:{0},Status:{1} ", openId, verify.Result); sToken = verify.Result; AppUserToken = sToken; //渠道TOKEN了 // //获取用户的信息 // ClassLibrary1.PurseData.UserInfo appUser = wxApi.getUserInfo(sToken); // if (appUser != null && appUser.Status == 1) // { // TxtLogServices.WriteTxtLogEx("RedirectHandle", "APP用户,获取用户信息成功,id:{0},Status:{1} ", openId, appUser.Result.Phone); // AppUserPhone = appUser.Result.Phone; // } // else // { // TxtLogServices.WriteTxtLogEx("RedirectHandle", "APP用户,获取用户信息失败,id:{0},Status:{1} ", openId, appUser.Status); // } } else if (verify.Status == 2) { TxtLogServices.WriteTxtLogEx("RedirectHandle", "APP用户自动登录失败,未绑定,id:{0},Status:{1} ", openId, verify.Result); //未绑定 AppUserToken = "-1"; } else { //其他都是失败 AppUserToken = ""; sToken = ""; TxtLogServices.WriteTxtLogEx("RedirectHandle", "APP用户自动登录失败,id:{0},Status:{1} ", openId, verify.Result); } return(Redir(id, accessToken.openid)); } catch (MyException ex) { ExceptionsServices.AddExceptionToDbAndTxt("WeiXinPageError", "id:" + id, ex, LogFrom.WeiXin); return(RedirectToAction("Index", "ErrorPrompt", new { message = ex.Message })); } catch (Exception ex) { ExceptionsServices.AddExceptionToDbAndTxt("WeiXinPageError", "RedirectHandle方法处理异常", ex, LogFrom.WeiXin); return(RedirectToAction("Index", "ErrorPrompt", new { message = "跳转链接失败" })); } }