using System.Net; using System; using System.Collections; using System.Collections.Generic; using Http; using Newtonsoft.Json; using UnityEngine; using Debug = System.Diagnostics.Debug; namespace BF { public class BFParseClientManager : ManagerBase { public Action luaCheckPurchaseOrderCallback; public Action luaCheckPurchaseConsumeCallback; public Action luaFirstRequestCallback; public Action luaCheckPurchaseIOSOrderCallback; public Action luaCheckPurchaseIOSConsumeCallback; static BFParseClientManager instance; public static BFParseClientManager Create() { BFLog.LogAssert(instance == null, "This method only allows BFMain to call once"); instance = new BFParseClientManager(); return instance; } BFParseClientManager() { } public override void Init() { base.Init(); #if UNITY_EDITOR HttpManager.Instance.SetServerUrl("http://game.juzugame.com:1337/parse/"); HttpManager.Instance.SetParseRevocableSession("1"); HttpManager.Instance.SetParseApplicationId("1"); HttpManager.Instance.SetParseClientKey("1kYT4UrExyQ0gaFh"); #else // HttpManager.Instance.SetServerUrl("http://34.233.204.253:1337/parse/"); // HttpManager.Instance.SetParseRevocableSession("1"); // HttpManager.Instance.SetParseApplicationId("1"); // HttpManager.Instance.SetParseClientKey("1kYT4UrExyQ0gaFh"); HttpManager.Instance.SetServerUrl("https://b2.bigfoot-studio.link/parse/"); HttpManager.Instance.SetParseRevocableSession("1"); HttpManager.Instance.SetParseApplicationId("101"); HttpManager.Instance.SetParseClientKey("Xxl3j5TBIn4ArY1m"); #endif } public void SetServerUrl(string url, string psarseRevocableSession = "1", string parseApplicationId = "1", string parseClientKey = "1kYT4UrExyQ0gaFh") { HttpManager.Instance.SetServerUrl(url); HttpManager.Instance.SetParseRevocableSession(psarseRevocableSession); HttpManager.Instance.SetParseApplicationId(parseApplicationId); HttpManager.Instance.SetParseClientKey(parseClientKey); } public void SetLuaCheckPurchaseOrderCallback(Action callback) { luaCheckPurchaseOrderCallback = callback; } public void SetLuaCheckPurchaseConsumeCallback(Action callback) { luaCheckPurchaseConsumeCallback = callback; } public void SetLuaCheckPurchaseIOSOrderCallback(Action callback) { luaCheckPurchaseIOSOrderCallback = callback; } public void SetLuaCheckPurchaseIOSConsumeCallback(Action callback) { luaCheckPurchaseIOSConsumeCallback = callback; } public void SetLuaFirstRequestCallback(Action callback) { luaFirstRequestCallback = callback; } public void UserLogin(string loginiInfo, Action complete) { UsersRequest.Instance.Users(loginiInfo, s => { if (string.IsNullOrEmpty(s)) { //错误 return; } var data = JsonConvert.DeserializeObject>(s); Debug.Assert(data != null, nameof(data) + " != null"); if (!data.TryGetValue("sessionToken", out var sessionToken)) return; var token = sessionToken as string; // ttToken.text = $"{token}"; HttpManager.Instance.SetToken(token); complete(s); }); } public void UserTokenLogin(string token, string loginiInfo, Action complete) { UsersRequest.Instance.UsersTokenLogin(token, loginiInfo, s => { if (!string.IsNullOrEmpty(s)) { var data = JsonConvert.DeserializeObject>>(s); Debug.Assert(data != null, nameof(data) + " != null"); if (!data.TryGetValue("result", out Dictionary result)) return; if (!result.TryGetValue("sessionToken", out var sessionToken)) return; var token = sessionToken as string; // ttToken.text = $"{token}"; HttpManager.Instance.SetToken(token); } complete(s); }); } public void UsersPost(string key, string body, Action complete) { UsersRequest.Instance.UsersPost(key, body, s => { if (string.IsNullOrEmpty(s)) { //错误 return; } complete(s); }); } public void UsersGet(string key, string body, Action complete) { UsersRequest.Instance.UsersGet(key, body, s => { if (string.IsNullOrEmpty(s)) { //错误 return; } complete(s); }); } public void UsersPut(string key, string body, Action complete) { UsersRequest.Instance.UsersPut(key, body, s => { if (string.IsNullOrEmpty(s)) { //错误 return; } complete(s); }); } public void UsersDel(string key, string body, Action complete) { UsersRequest.Instance.UsersDel(key, body, s => { if (string.IsNullOrEmpty(s)) { //错误 return; } complete(s); }); } public void CheckPurchaseGPOrder(string purchase) { FunctionRequest.Instance.Invoke("iapValidateGoogle", purchase, s => { // var data = JsonConvert.DeserializeObject>(s); BFLog.Log("CheckPurchaseGPOrder"); OnCheckPurchaseGPOrder(s); }); } public void CheckPurchaseGPConsume(string purchase) { FunctionRequest.Instance.Invoke("iapRecordGoogle", purchase, s => { // var data = JsonConvert.DeserializeObject>(s); BFLog.Log("CheckPurchaseGPConsume"); OnCheckPurchaseGPConsume(s); }); } public void FirstRequestAction(string info) { FunctionRequest.Instance.Invoke("version", info, s => { // var data = JsonConvert.DeserializeObject>(s); BFLog.Log("FirstRequestAction"); OnFirstRequestAction(s); }); } public void CheckPurchaseIOSOrder(string purchase) { FunctionRequest.Instance.Invoke("iapValidateApple", purchase, s => { // var data = JsonConvert.DeserializeObject>(s); BFLog.Log("CheckPurchaseIOSOrder"); OnCheckPurchaseGPOrder(s); }); } public void CheckPurchaseIOSConsume(string purchase) { FunctionRequest.Instance.Invoke("iapRecordApple", purchase, s => { // var data = JsonConvert.DeserializeObject>(s); BFLog.Log("CheckPurchaseIOSConsume"); OnCheckPurchaseGPConsume(s); }); } public void OnCheckPurchaseGPOrder(string msg) { if (luaCheckPurchaseOrderCallback != null) { luaCheckPurchaseOrderCallback(msg); luaCheckPurchaseOrderCallback = null; } } public void OnCheckPurchaseGPConsume(string msg) { if (luaCheckPurchaseConsumeCallback != null) { luaCheckPurchaseConsumeCallback(msg); luaCheckPurchaseConsumeCallback = null; } } public void OnFirstRequestAction(string msg) { if (luaFirstRequestCallback != null) { luaFirstRequestCallback(msg); luaFirstRequestCallback = null; } } public void OnCheckPurchaseIOSOrder(string msg) { if (luaCheckPurchaseIOSOrderCallback != null) { luaCheckPurchaseIOSOrderCallback(msg); luaCheckPurchaseIOSOrderCallback = null; } } public void OnCheckPurchaseIOSConsume(string msg) { if (luaCheckPurchaseIOSConsumeCallback != null) { luaCheckPurchaseIOSConsumeCallback(msg); luaCheckPurchaseIOSConsumeCallback = null; } } // Function public void FunctionPost(string url, string body, Action complete) { FunctionRequest.Instance.Invoke(url, body, s => { complete(s); }); } // Storage public void StorageWrite(string key, string body, Action complete) { StorageRequest.Instance.Write(key, body, complete); } public void StorageRead(string key, string body, Action complete) { StorageRequest.Instance.Read(key, body, complete); } public void StorageUpdate(string key, string body, Action complete) { StorageRequest.Instance.Update(key, body, complete); } public void StorageDelete(string key, string deleteKeys, Action complete) { StorageRequest.Instance.Delete(key, deleteKeys, complete); } public void Put(string url, string body, Action complete) { var http = HttpManager.Instance.Put(url, info => OnResult(info, complete)); http.AddToken(); http.AddParameter(body); http.Send(); } private void OnResult(ResultInfo info, Action complete) { if (info.State == RequestState.Success) { complete?.Invoke(0, info.Response.DataAsText); return; } else if (info.Response != null) { if (info.Response.StatusCode >= 200 || info.Response.StatusCode < 500) { complete?.Invoke(0, info.Response.DataAsText); return; } } complete?.Invoke(1, string.Empty); } } }