| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363 |
- using System.Collections;
- using System.Collections.Generic;
- using System;
- using UnityEngine;
- using UnityEngine.Networking;
- using Newtonsoft.Json;
- /* Http控制器-登录 */
- public class LoginController : JCUnityLib.Singleton<LoginController>
- {
- public IEnumerator LoginNormal(string username, string password, Action<RequestResult> callback) {
- Debug.Log("LoginNormal:"+ username);
- string url = CommonConfig.gateServerURL + "/gameLogin/loginNormal";
- WWWForm form = new WWWForm();
- form.AddField("username", username);
- form.AddField("password", password);
- form.AddField("serverIndex", CommonConfig.serverIndex);
- using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
- yield return request.SendWebRequest();
- RequestResult requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- if (callback != null) callback(requestResult);
- }
- }
- public IEnumerator LoginByWX(string loginCode, Action<RequestResult> callback) {
- string url = CommonConfig.gateServerURL + "/gameLogin/loginByWX";
- WWWForm form = new WWWForm();
- form.AddField("loginCode", loginCode);
- form.AddField("serverIndex", CommonConfig.serverIndex);
- using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
- request.timeout = 10;
- yield return request.SendWebRequest();
- RequestResult requestResult = new RequestResult();
- if (request.result == UnityWebRequest.Result.Success) {
- requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- }
- if (callback != null) callback(requestResult);
- }
- }
- public IEnumerator LoginByWX_WithAppID(string loginCode, string appid, Action<RequestResult> callback)
- {
- string url = CommonConfig.gateServerURL + "/gameLogin/loginAppIDByWX";
- WWWForm form = new WWWForm();
- form.AddField("loginCode", loginCode);
- form.AddField("serverIndex", CommonConfig.serverIndex);
- form.AddField("appid", appid);
- using (UnityWebRequest request = UnityWebRequest.Post(url, form))
- {
- request.timeout = 10;
- yield return request.SendWebRequest();
- RequestResult requestResult = new RequestResult();
- if (request.result == UnityWebRequest.Result.Success)
- {
- requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- }
- if (callback != null) callback(requestResult);
- }
- }
- public IEnumerator LoginByApple(string identityToken, string email, string fullName, Action<RequestResult> callback)
- {
- string url = CommonConfig.gateServerURL + "/gameLogin/loginByApple";
- WWWForm form = new WWWForm();
- form.AddField("identityToken", identityToken);
- form.AddField("email", email);
- form.AddField("fullName", fullName);
- form.AddField("serverIndex", CommonConfig.serverIndex);
- using (UnityWebRequest request = UnityWebRequest.Post(url, form))
- {
- request.timeout = 10;
- yield return request.SendWebRequest();
- RequestResult requestResult = new RequestResult();
- if (request.result == UnityWebRequest.Result.Success)
- {
- requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- }
- if (callback != null) callback(requestResult);
- }
- }
- public IEnumerator DdeleteUserByApple(string identityToken, Action<RequestResult> callback)
- {
- string url = CommonConfig.gateServerURL + "/gameLogin/deleteUserByApple";
- WWWForm form = new WWWForm();
- form.AddField("identityToken", identityToken);
- form.AddField("serverIndex", CommonConfig.serverIndex);
- using (UnityWebRequest request = UnityWebRequest.Post(url, form))
- {
- request.timeout = 10;
- yield return request.SendWebRequest();
- RequestResult requestResult = new RequestResult();
- if (request.result == UnityWebRequest.Result.Success)
- {
- requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- }
- if (callback != null) callback(requestResult);
- }
- }
- public IEnumerator Register(string username, string password, Action<RequestResult> callback) {
- string url = CommonConfig.gateServerURL + "/gameLogin/register";
- WWWForm form = new WWWForm();
- form.AddField("username", username);
- form.AddField("password", password);
- form.AddField("serverIndex", CommonConfig.serverIndex);
- using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
- yield return request.SendWebRequest();
- RequestResult requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- if (callback != null) callback(requestResult);
- }
- }
- public IEnumerator Register2(string username, string password, string email, string phone, Action<RequestResult> callback) {
- string url = CommonConfig.gateServerURL + "/gameLogin/register2";
- WWWForm form = new WWWForm();
- form.AddField("username", username);
- form.AddField("password", password);
- form.AddField("email", email);
- form.AddField("phone", phone);
- form.AddField("serverIndex", CommonConfig.serverIndex);
- using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
- yield return request.SendWebRequest();
- RequestResult requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- if (callback != null) callback(requestResult);
- }
- }
- public IEnumerator CompleteUserInfo(
- string username, string password,
- string nickname, int gender, string birthday,
- string countryCode, string stateCode, string cityCode,
- Action<RequestResult> callback
- ) {
- string url = CommonConfig.gateServerURL + "/gameLogin/completeUserInfo";
- WWWForm form = new WWWForm();
- form.AddField("username", username);
- form.AddField("password", password);
- form.AddField("nickname", nickname);
- form.AddField("gender", gender);
- form.AddField("birthday", birthday);
- form.AddField("countryCode", countryCode);
- form.AddField("stateCode", stateCode);
- form.AddField("cityCode", cityCode);
- using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
- yield return request.SendWebRequest();
- RequestResult requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- if (callback != null) callback(requestResult);
- }
- }
- public IEnumerator LoginByPhone(string phone, Action<RequestResult> callback) {
- string url = CommonConfig.gateServerURL + "/gameLogin/loginByPhone";
- WWWForm form = new WWWForm();
- form.AddField("phone", phone);
- using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
- yield return request.SendWebRequest();
- RequestResult requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- if (callback != null) callback(requestResult);
- }
- }
- public IEnumerator LoginByToken(Action<RequestResult> callback) {
- string url = CommonConfig.gateServerURL + "/gameLogin/loginByToken";
- WWWForm form = new WWWForm();
- form.AddField("token", PlayerPrefs.GetString(LoginMgr.LoginTokenKey));
- form.AddField("sceneName", UnityEngine.SceneManagement.SceneManager.GetActiveScene().name);
- form.AddField("serverIndex", CommonConfig.serverIndex);
- using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
- request.timeout = 10;
- yield return request.SendWebRequest();
- RequestResult requestResult;
- if (request.result == UnityWebRequest.Result.Success)
- requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- else
- {
- requestResult = new RequestResult();
- Debug.LogError("LoginByToken Request Fail: " + request.result);
- }
- if (callback != null) callback(requestResult);
- }
- }
- public IEnumerator GetUserInfo(Action<RequestResult> callback)
- {
- string url = CommonConfig.gateServerURL + "/gameLogin/getUserInfo";
- WWWForm form = new WWWForm();
- form.AddField("token", PlayerPrefs.GetString(LoginMgr.LoginTokenKey));
- using (UnityWebRequest request = UnityWebRequest.Post(url, form))
- {
- request.timeout = 10;
- yield return request.SendWebRequest();
- RequestResult requestResult;
- if (request.result == UnityWebRequest.Result.Success)
- requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- else
- {
- requestResult = new RequestResult();
- }
- if (callback != null) callback(requestResult);
- }
- }
- /// <summary>
- /// 上传自定义头像
- /// </summary>
- /// <param name="texture"></param>
- /// <returns></returns>
- public IEnumerator UploadAvatar(Texture2D texture, Action<RequestResult> callback)
- {
- string url = $"{CommonConfig.gateServerURL}/SmartBowSDK/uploadAvatar";
- byte[] imageBytes = texture.EncodeToPNG();
- WWWForm form = new WWWForm();
- form.AddField("token", PlayerPrefs.GetString(LoginMgr.LoginTokenKey));
- form.AddField("tokenType", "client");
- form.AddBinaryData("file", imageBytes, "avatar.png", "image/png");
- using (UnityWebRequest uwr = UnityWebRequest.Post(url, form))
- {
- yield return uwr.SendWebRequest();
- RequestResult requestResult;
- if (uwr.result == UnityWebRequest.Result.Success)
- requestResult = JsonConvert.DeserializeObject<RequestResult>(uwr.downloadHandler.text);
- else
- {
- requestResult = new RequestResult();
- }
- if (callback != null) callback(requestResult);
- }
- }
- public IEnumerator ListUsernamesByEmail(string email, long timestamp, string sign, Action<RequestResult> callback) {
- string url = CommonConfig.gateServerURL + "/gameLogin/listUsernamesByEmail";
- WWWForm form = new WWWForm();
- form.AddField("email", email);
- form.AddField("timestamp", timestamp.ToString());
- form.AddField("sign", sign);
- using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
- yield return request.SendWebRequest();
- RequestResult requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- if (callback != null) callback(requestResult);
- }
- }
- public IEnumerator ListUsernamesByPhone(string phone, long timestamp, string sign, Action<RequestResult> callback) {
- string url = CommonConfig.gateServerURL + "/gameLogin/listUsernamesByPhone";
- WWWForm form = new WWWForm();
- form.AddField("phone", phone);
- form.AddField("timestamp", timestamp.ToString());
- form.AddField("sign", sign);
- using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
- yield return request.SendWebRequest();
- RequestResult requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- if (callback != null) callback(requestResult);
- }
- }
- public IEnumerator ResetPassword(string sign, long timestamp, string username, string password, Action<RequestResult> callback) {
- string url = CommonConfig.gateServerURL + "/gameLogin/resetPassword";
- WWWForm form = new WWWForm();
- form.AddField("sign", sign);
- form.AddField("timestamp", timestamp.ToString());
- form.AddField("username", username);
- form.AddField("password", password);
- using (UnityWebRequest request = UnityWebRequest.Post(url, form)) {
- yield return request.SendWebRequest();
- RequestResult requestResult = JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text);
- if (callback != null) callback(requestResult);
- }
- }
- /// <summary>
- /// 上传排行榜分数(定制)
- /// </summary>
- /// <param name="secret">密钥</param>
- /// <param name="taskId">任务类型</param>
- /// <param name="difficultType">难度</param>
- /// <param name="modeType">模式</param>
- /// <param name="deviceType">设备类型</param>
- /// <param name="score">分数(>=0)</param>
- /// <param name="callback">回调</param>
- public IEnumerator UploadCustomLeaderboardScore(string secret, int taskId, int difficultType, int modeType, int deviceType, int score, Action<RequestResult> callback)
- {
- string loginToken = PlayerPrefs.GetString(LoginMgr.LoginTokenKey);
- if (string.IsNullOrEmpty(loginToken))
- {
- callback?.Invoke(new RequestResult { msg = "尚未登录" });
- yield break;
- }
- if (score < 0)
- {
- callback?.Invoke(new RequestResult { msg = "分数不能小于0" });
- yield break;
- }
- string url = $"{CommonConfig.gateServerURL}/SmartBowSDK/UploadCustomLeaderboardScore";
- WWWForm form = new WWWForm();
- form.AddField("token", loginToken);
- form.AddField("tokenType", "client");
- form.AddField("secret", secret);
- form.AddField("taskId", taskId);
- form.AddField("difficultType", difficultType);
- form.AddField("modeType", modeType);
- form.AddField("deviceType", deviceType);
- form.AddField("score", score);
- yield return PostRequest(url, form, callback);
- }
- /// <summary>
- /// 获取排行榜(自定义)
- /// </summary>
- /// <param name="secret">密钥</param>
- /// <param name="taskId">任务类型</param>
- /// <param name="difficultType">难度</param>
- /// <param name="modeType">模式</param>
- /// <param name="deviceType">设备类型</param>
- /// <param name="timeType">时间维度</param>
- /// <param name="callback">回调</param>
- public IEnumerator GetCustomLeaderboard(string secret, int taskId, int difficultType, int modeType, int deviceType, int timeType, Action<RequestResult> callback)
- {
- string loginToken = PlayerPrefs.GetString(LoginMgr.LoginTokenKey);
- if (loginToken == null)
- {
- callback?.Invoke(new RequestResult { msg = "尚未登录" });
- yield break;
- }
- string url = $"{CommonConfig.gateServerURL}/SmartBowSDK/GetCustomLeaderboard";
- WWWForm form = new WWWForm();
- form.AddField("token", loginToken);
- form.AddField("tokenType", "client");
- form.AddField("secret", secret);
- form.AddField("taskId", taskId);
- form.AddField("difficultType", difficultType);
- form.AddField("modeType", modeType);
- form.AddField("deviceType", deviceType);
- form.AddField("timeType", timeType);
- yield return PostRequest(url, form, callback);
- }
- private IEnumerator PostRequest(string url, WWWForm form, Action<RequestResult> callback)
- {
- using (UnityWebRequest request = UnityWebRequest.Post(url, form))
- {
- yield return request.SendWebRequest();
- if (request.result == UnityWebRequest.Result.Success)
- callback?.Invoke(JsonConvert.DeserializeObject<RequestResult>(request.downloadHandler.text));
- else
- callback?.Invoke(new RequestResult { msg = "网络请求失败: " + request.error });
- }
- }
- }
- public class RequestResult {
- public int code = -9999;
- public object data;
- public string msg;
- }
|