diff --git a/Assets/Scripts/Apis/ThirdPartApi.cs b/Assets/Scripts/Apis/ThirdPartApi.cs index 794bbf57..e8a87631 100644 --- a/Assets/Scripts/Apis/ThirdPartApi.cs +++ b/Assets/Scripts/Apis/ThirdPartApi.cs @@ -11,14 +11,6 @@ namespace Assets.Scripts.Apis { public class ThirdPartApi : ApiBase { - public async Task GetWxAccessToken(string code) - { - return await GetThirdPartAsync($"https://api.weixin.qq.com/sns/oauth2/access_token?appid={App.WxAppId}&secret={App.WxAppSecret}&code={code}&grant_type=authorization_code"); - } - public async Task GetWxUserInfo(string accessToken, string openId) - { - return await GetThirdPartAsync($"https://api.weixin.qq.com/sns/userinfo?access_token=" + accessToken + "&openid=" + openId); - } public async Task GetLocationInfo() { return await GetThirdPartAsync("https://ip.seeip.org/geoip"); diff --git a/Assets/Scripts/Apis/UserApi.cs b/Assets/Scripts/Apis/UserApi.cs index ce69b1b8..8e562e31 100644 --- a/Assets/Scripts/Apis/UserApi.cs +++ b/Assets/Scripts/Apis/UserApi.cs @@ -185,7 +185,25 @@ namespace Assets.Scripts.Apis } return r; } - + public async Task> OnWebWxLoginCheckUnionIdByCode(string code,string state) + { + var r = await GetAsync>($"NoAuth/v1/OnWebWxLogin?code={code}&state={state}"); + if (r.result) + { + var data = JObject.FromObject(r.data); + if (data.Value("success") != null && data.Value("success") == "False") + { + return r; + } + else + { + var user = data.ToObject(); + user.cookie = cookies[0].Value; + r.data = user; + } + } + return r; + } public async Task> OnWebWxLoginCheckUnionId(string unionId, string openId) { var r = await PostAsync>("NoAuth/OnWebWxLoginCheckUnionId", new { unionId, openId }); @@ -205,11 +223,11 @@ namespace Assets.Scripts.Apis } return r; } - public async Task> OnWebWxLogin(string Phone, string Captcha - , string UnionId, string WxWebOpenId, string WxHeadImg, string NickName, int? Sex, string Password) + public async Task> OnWebWxLogin(string Phone, string Captcha, + string Password, string UnionId, string WxWebOpenId) { - var r = await PostAsync>("NoAuth/OnWebWxLogin", - new { Phone, Captcha, UnionId, WxWebOpenId, WxHeadImg, NickName, Sex, Pwd = Password }); + var r = await PostAsync>("NoAuth/v1/OnWebWxLogin", + new { Phone, Captcha, UnionId, openId = WxWebOpenId, Pwd = Password }); if (r.result) { var u = JObject.FromObject(r.data); diff --git a/Assets/Scripts/App.cs b/Assets/Scripts/App.cs index b22a285c..44f0e48f 100644 --- a/Assets/Scripts/App.cs +++ b/Assets/Scripts/App.cs @@ -18,8 +18,7 @@ public static class App public static int RouteIdParam = 0; public static UserResultModel CurrentUser { get; set; } public static string WxAppId = "wx9e8ca734e024f084"; - public static string WxAppSecret = "906abafb2a18bc7a66ccfa5550f859b6"; - + public static string MapBoxAccessToken => "pk.eyJ1IjoiYW5keXNqdCIsImEiOiJja2ZhajE5OGwwamRiMnltcW96bHk0ZWFuIn0.GvKanc6UveWSvIjS9HfBPA"; public static double latitude { get; internal set; } diff --git a/Assets/Scripts/Scenes/LoginController.cs b/Assets/Scripts/Scenes/LoginController.cs index 789c7f2a..6174abb7 100644 --- a/Assets/Scripts/Scenes/LoginController.cs +++ b/Assets/Scripts/Scenes/LoginController.cs @@ -254,8 +254,8 @@ public class LoginController : MonoBehaviour { if (wxLock) return; wxLock = true; - wxState = (DateTime.Now.ToUniversalTime().Ticks / 10000 * new System.Random().Next(1, 5)).ToString(); - wxBrowser.Url = $"https://open.weixin.qq.com/connect/qrconnect?appid={App.WxAppId}&redirect_uri=https%3A%2F%2Fwx.powerfun.com.cn%2FNoAuth%2Fv1%2FWxWebLogin&response_type=code&scope=snsapi_login&state={wxState}#wechat_redirect"; + //wxState = (DateTime.Now.ToUniversalTime().Ticks / 10000 * new System.Random().Next(1, 5)).ToString(); + wxBrowser.Url = $"https://open.weixin.qq.com/connect/qrconnect?appid={App.WxAppId}&redirect_uri=https%3A%2F%2Fwx.powerfun.com.cn%2FNoAuth%2Fv1%2FWxWebLogin&response_type=code&scope=snsapi_login&state=unity#wechat_redirect"; AdjustWxQrCode(); //wxBrowser.RegisterFunction("isFinish", args => //{ @@ -536,28 +536,28 @@ public class LoginController : MonoBehaviour { //AdjustWxQrCode(); } - //Debug.Log(wxBrowser.Url); var rgx = Regex.Match(wxBrowser.Url, @"https\:\/\/wx.powerfun.com.cn/NoAuth/v1/WxWebLogin\?code=(.*?)&state=(.*?)$"); var groups = rgx.Groups; if (groups.Count == 3) { - wxBrowser.LoadHTML("
"); + //wxBrowser.LoadHTML("
"); var state = groups[2].Value; - if (state == wxState) + if (state == "unity") { - var acjson = await ConfigHelper.thirdPartApi.GetWxAccessToken(groups[1].Value); - var infojson = await ConfigHelper.thirdPartApi.GetWxUserInfo( - acjson.Value("access_token"), acjson.Value("openid")); - wxInfoJson = infojson; - string unionId = wxInfoJson.Value("unionid"), - openId = wxInfoJson.Value("openid"); - var r = await ConfigHelper.userApi.OnWebWxLoginCheckUnionId(unionId, openId); + //wxBrowser. + //var acjson = await ConfigHelper.thirdPartApi.GetWxAccessToken(groups[1].Value); + //var infojson = await ConfigHelper.thirdPartApi.GetWxUserInfo( + // acjson.Value("access_token"), acjson.Value("openid")); + + //string unionId = wxInfoJson.Value("unionid"), + // openId = wxInfoJson.Value("openid"); + var r = await ConfigHelper.userApi.OnWebWxLoginCheckUnionIdByCode(groups[1].Value, groups[2].Value); if (r.result) { - JObject data = JObject.FromObject(r.data); if (data.Value("success") != null && data.Value("success") == "False") { + wxInfoJson = data; wxLogin2.gameObject.SetActive(true); Utils.DisplayImage(wxLogin2.Find("Avatar").GetComponent(), wxInfoJson.Value("headimgurl")); @@ -572,7 +572,7 @@ public class LoginController : MonoBehaviour } else { - RefreshWx3(data.ToObject(),1); + RefreshWx3(data.ToObject(), 1); wxLogin3.gameObject.SetActive(true); //Utils.DisplayImage(StartCoroutine, //wxLogin3.Find("Avatar").GetComponent(), @@ -701,12 +701,9 @@ public class LoginController : MonoBehaviour { r = await ConfigHelper.userApi.OnWebWxLogin(Email.text, Captcha.text, - wxInfoJson.Value("unionid"), - wxInfoJson.Value("openid"), - wxInfoJson.Value("headimgurl"), - wxInfoJson.Value("nickname"), - wxInfoJson.Value("sex"), - Password.text); + Password.text, + wxInfoJson.Value("unionId"), + wxInfoJson.Value("openId")); } if (r != null && r.result) { @@ -729,12 +726,9 @@ public class LoginController : MonoBehaviour var Captcha = signForm.captcha; var r = await ConfigHelper.userApi.OnWebWxLogin(Email.text, Captcha.text, - wxInfoJson.Value("unionid"), - wxInfoJson.Value("openid"), - wxInfoJson.Value("headimgurl"), - wxInfoJson.Value("nickname"), - wxInfoJson.Value("sex"), - ""); + "", + wxInfoJson.Value("unionId"), + wxInfoJson.Value("openId")); if (r.result) { var u = JObject.FromObject(r.data).ToObject();