Beispiel #1
0
    /// <summary>
    /// 登陆成功的回调
    /// </summary>
    /// <param name="_rpcResultObj"></param>
    private void onLoginRequestFinish(SnapRpcDataVO _rpcResultObj)
    {
        JsonData data = _rpcResultObj.data;

        if (_rpcResultObj.code == 1)
        {
            LogManager.Log("登录成功!!!!");
            GlobalConst.LoginToApp           = true;
            SelfPlayerData.UserName          = _userName;
            SelfPlayerData.Password          = _pwd;
            SnapHttpConfig.LOGINED_APP_TOKEN = data["token"].ToString();
            GlobalConst.Player_ID            = data.TryGetString("appUserID");
            GlobalConst.Player_IDTemp        = data.TryGetString("uid");
            SelfPlayerData.Uuid     = data.TryGetString("uid");
            SelfPlayerData.DeviceID = PlayerPrefs.GetString("DeviceID");

            //GlobalConst.CurrentServerTime = (long)data["currentTime"];
            GetLoginUserInfo();
        }
        else if (_rpcResultObj.code == RpcDataCode.AccoutLock)
        {
            PromptManager.Instance.MessageBox(PromptManager.Type.FloatingTip, "帐号被锁定,请联系客服人员");
        }
        else if (_rpcResultObj.code == RpcDataCode.PasswordError)
        {
            PromptManager.Instance.MessageBox(PromptManager.Type.FloatingTip, "密码输入有误");
        }
        if (_loginActionCallBack != null)
        {
            _loginActionCallBack.Invoke(_rpcResultObj.code);
        }
    }
 protected void RequestUserVoCallback(SnapRpcDataVO _rpcResultObj)
 {
     if (_rpcResultObj.status == true)
     {
         UserVoProxy.instance().FinishItemRequest(this);
         JsonData    userData = _rpcResultObj.data["user"];
         UserVoBasic userVo   = UserVoProxy.instance().formatVo(userData);
         //把自己登陆的信息扔份数据给SelfPlayerData
         if (userData["id"].ToString() == GlobalConst.Player_IDTemp)
         {
             GameUserService.SaveGameUser(userData);
             LogManager.Log("登录用户的模型ID" + _rpcResultObj.data.TryGetString("modelID"));
             LogManager.Log("登录用户的表情ID" + _rpcResultObj.data.TryGetString("emotionID"));
             LogManager.Log("登录用户的省份" + userData.TryGetString("province"));
             LogManager.Log("登录用户的城市" + userData.TryGetString("city"));
             SelfPlayerData.Country = int.Parse(userData.TryGetString("country"));
             if (DebugConfigController.Instance._debugLanguage == false)
             {
                 LanguageManager.languageType = SelfPlayerData.Country == 0 ? LanguageType.Chinese : LanguageType.English;
             }
             else
             {
                 if (DebugConfigController.Instance._isChinese)
                 {
                     LanguageManager.languageType = LanguageType.Chinese;
                 }
                 else
                 {
                     LanguageManager.languageType = LanguageType.English;
                 }
             }
             XunFeiSRManager.OnRuntimeMethodLoad(LanguageManager.languageType);
             SelfPlayerData.Province  = userData.TryGetString("province");
             SelfPlayerData.City      = userData.TryGetString("city");
             SelfPlayerData.ModelId   = _rpcResultObj.data.TryGetString("modelID");
             SelfPlayerData.EmotionId = _rpcResultObj.data.TryGetString("emotionID");
             BookSceneManager.GetCourseFormServer();
             if (SelfPlayerData.ModelId.Equals("0") || SelfPlayerData.EmotionId.Equals("0"))
             {
                 //用户还没创建角色则更新角色信息到服务器
                 RoleManager.Instance.SbmitRoleInfoToServer();
             }
             else
             {
                 //已经创建过角色了则已经是第二次登录了直接进选关界面
                 LogManager.Log(SceneManager.GetActiveScene().name);
                 if (SceneManager.GetActiveScene().name.Equals("LoginScene"))
                 {
                     LoadSceneManager.Instance.LoadNormalScene("BookScene");
                 }
             }
         }
         if (mCallback != null)
         {
             mCallback(userVo);
             mCallback = null;
         }
     }
 }
 private static void RegisterUserCallback(SnapRpcDataVO rpcData)
 {
     if (mRegisterUserCallback != null)
     {
         mRegisterUserCallback(rpcData);
         mRegisterUserCallback = null;
     }
 }
 private static void CheckUserNameCallback(SnapRpcDataVO rpcData)
 {
     if (mCheckUserNameCallback != null)
     {
         mCheckUserNameCallback(rpcData);
         mCheckUserNameCallback = null;
     }
 }
Beispiel #5
0
 private static void VerifyTransactionCallback(SnapRpcDataVO rpcData)
 {
     if (mRequestGoodsInfoCallback != null)
     {
         mRequestGoodsInfoCallback(rpcData);
         mRequestGoodsInfoCallback = null;
     }
 }
Beispiel #6
0
 private static void RequestGoodsInfoCallback(SnapRpcDataVO rpcData)
 {
     if (mRequestGoodsInfoCallback != null)
     {
         mRequestGoodsInfoCallback(rpcData);
         mRequestGoodsInfoCallback = null;
     }
 }
Beispiel #7
0
    public void AddOneHttpCallBack(Action <SnapRpcDataVO> action, SnapRpcDataVO data)
    {
        SnapHttpCallBack http = new SnapHttpCallBack();

        http.actionCallBack = action;
        http.dataVO         = data;
        callBackList.Add(http);
    }
    private void uploadFileSuccess(SnapRpcDataVO resultVo)
    {
        string result = resultVo.data["uploadUrl"].ToString();

        if (_resultAction != null)
        {
            _resultAction.Invoke(result);
        }
    }
 private void checkUserNameCallback(SnapRpcDataVO rpcResultObj)
 {
     if (rpcResultObj.code == RpcDataCode.RequestFinish)
     {
         //if (rpcResultObj.data.IsArray)
         //{
         //用户名可用
         if (rpcResultObj.data == null)
         {
             mUserNameIsOk = true;
         }
         else
         {
             mUserNameIsOk = false;
             if (rpcResultObj.data.IsArray)
             {
                 //推荐用户名
                 if (rpcResultObj.data.Count > 1 && ((string)rpcResultObj.data[0]).Length < 11)
                 {
                     onShowRecemmendName((string)rpcResultObj.data[0], (string)rpcResultObj.data[1]);
                 }
                 else
                 {
                     PromptManager.Instance.MessageBox(PromptManager.Type.FloatingTip, "用户名已注册");
                 }
             }
             else
             {
                 PromptManager.Instance.MessageBox(PromptManager.Type.FloatingTip, "用户名已注册");
             }
         }
         //}
         //else
         //{
         //	mUserNameIsOk = false;
         //	PromptManager.Instance.MessageBox(PromptManager.Type.FloatingTip, "用户名已注册");
         //}
     }
     //用户名不合法 || 激活码不能做用户名
     else if (rpcResultObj.code == RpcDataCode.NameDirty || rpcResultObj.code == RpcDataCode.NameActivation)
     {
         mUserNameIsOk = false;
         PromptManager.Instance.MessageBox(PromptManager.Type.FloatingTip, "用户名包含非法内容,请更换");
     }
     else
     {
         //用户名可用
         mUserNameIsOk = true;
     }
     RegisterLogin();
     checkIsCanRegister();
 }
    private void CheckResponseError(SnapRpcDataVO rpcData)
    {
        if (!rpcData.status)
        {
            LogManager.LogError("[HttpRequest]Check Response Error! error code: "
                                , rpcData.code, ", err message: ", rpcData.message);

            if (rpcData.code == (int)HttpErrorCode.LoginTokenError)
            {
                GameManager.LoginOnOtherDivices(false);
            }
        }

        SnapHttpManager.getInstance().AddOneHttpCallBack(httpRequestVO.requestBackAction, rpcData);
    }
 private static void LoadUserVoCallback(SnapRpcDataVO rpcData)
 {
     if (rpcData.status == true)
     {
         LogManager.Log("更新信息成功");
     }
     else
     {
         LogManager.Log("更新信息失败:", rpcData.code, "(", rpcData.message, ")");
     }
     if (mLoadUserVoCallback != null)
     {
         mLoadUserVoCallback(rpcData);
         mLoadUserVoCallback = null;
     }
 }
Beispiel #12
0
    public static LevelScroesObject levelObject(SnapRpcDataVO vo)
    {
        LevelScroesObject scoresObj = new LevelScroesObject();

        scoresObj.status  = vo.status;
        scoresObj.message = vo.message;
        if (vo.data != null)
        {
            LogManager.Log("获取排行榜时服务器返回数据:", vo.data.ToJson());
        }
        if (vo.data != null && ((IDictionary)vo.data).Keys.Count > 0)
        {
            string jsonString = JsonMapper.ToJson(vo.data);
            LevelScroesObject.Data scoreData = JsonUtility.FromJson <LevelScroesObject.Data>(jsonString);
            scoresObj.data = scoreData;
        }
        return(scoresObj);
    }
Beispiel #13
0
    /// <summary>
    /// 处理注册的结果
    /// </summary>
    /// <param name="rpcResultObj"></param>
    private void registerUserCallback(SnapRpcDataVO rpcResultObj)
    {
        if (rpcResultObj.code == RpcDataCode.RequestFinish)
        {
            RegisterConfig.Temp_UserName     = mUserNameImportTF.text;
            RegisterConfig.Temp_UserPassword = mUserPasswordTF.text;

            LogManager.Log("注册成功");
            AnalysisManager.Instance.OnEvent("register", null);

            afterRegisterDelgate(RegisterConfig.Temp_UserName, RegisterConfig.Temp_UserPassword);
            onCloseNodeHandle();
            mSubmitBtn.enabled = true;
        }
        else
        {
            //注册未成功
            PromptManager.Instance.MessageBox(PromptManager.Type.FloatingTip, "系统繁忙,请稍后再试");
        }
    }
    /// <summary>
    /// 验证结果
    /// </summary>
    /// <param name="rpcResultObj"></param>
    private void VerifyTransactionResultCallback(SnapRpcDataVO rpcResultObj)
    {
        StopTimeoutTimer();
        JsonData data = rpcResultObj.data;

        if (rpcResultObj.code == RpcDataCode.RequestFinish)
        {
            string logStr = "验证完成, 有效交易:" + rpcResultObj.code + "(" + rpcResultObj.message + ")";
            if (Manager)
            {
                Manager.log(logStr);
            }
            LogManager.Log(logStr);

            if (Manager)
            {
                Manager.BuyFinishGoToGameLoic();
            }
        }
        else
        {
            string logStr = "验证失败, 无效交易:" + rpcResultObj.code + "(" + rpcResultObj.message + ")";
            if (Manager)
            {
                Manager.log(logStr);
            }
            LogManager.Log(logStr);
        }

        //!!! Item漏单处理完毕

        //收据验证完成, 清除本地
        RemoveItemIAPTransaction(CurrentVerifyTransaction.userID, CurrentVerifyTransaction.transactionID);
        CurrentVerifyTransaction = null;
        //继续巡查
        VerifyItemTransaction();
        if (Manager)
        {
            Manager.clear();
        }
    }
Beispiel #15
0
    /// <summary>
    /// 请求商品信息
    /// </summary>
    /// <param name="rpcResultObj"></param>
    private void RequestGoodsInfoCallback(SnapRpcDataVO rpcResultObj)
    {
        if (CurrentIsDispose)
        {
            return;
        }

        JsonData data = rpcResultObj.data;

        if (rpcResultObj.code == RpcDataCode.RequestFinish)
        {
            GoodsPublisServer = new List <ServerGoodsInfo> ();
            for (int i = 0; i < data.Count; i++)
            {
                ServerGoodsInfo item = new ServerGoodsInfo();
                item.GoodsID       = (string)data[i]["appleGoodsId"];
                item.GoodsSnapID   = (string)data[i]["id"];
                item.GoodsIconUrl  = (string)data[i]["icon"];
                item.GoodsLvInt    = (int)data[i]["courseNum"];
                item.GoodsSnapType = (int)data[i]["itemType"];
                item.GoodsIsBuyed  = (Boolean)data[i]["isBuy"];
                GoodsPublisServer.Add(item);
            }

            IAPProxy.Instance().InitializeIAP(GoodsPublisServer, InitializeUI);

            string logStr = "请求商品信息成功:" + JsonMapper.ToJson(data);
            log(logStr);
        }
        else
        {
            PromptManager.Instance.MessageBox(PromptManager.Type.FloatingTip, "支付通信失败,请稍后重试");
            string logStr = "请求商品信息失败:" + JsonMapper.ToJson(data);
            log(logStr);
        }
    }
Beispiel #16
0
    public static HttpWebRequest PutRequest(SnapRequestVO vo, Action <SnapRpcDataVO> callback = null)
    {
        string request_url = GetHttpURL(vo);

        if (string.IsNullOrEmpty(request_url))
        {
            request_url = SnapHttpConfig.NET_APP_URL;
        }
        byte[]         body    = vo.toByte();
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(request_url);

        request.Proxy = null;
        //LogManager.Log(request.RequestUri);
        request.Method           = SnapHttpConfig.NET_REQUEST_PUT;
        request.Timeout          = 600 * 1000;
        request.ReadWriteTimeout = 600 * 1000;
        request.ContentType      = SnapAppUploadFile.OSS_ContentType;
        request.ContentLength    = body.Length;
        if (vo.mp3byte != null && vo.mp3byte.Length > 0)
        {
            MethodInfo priMethod = request.Headers.GetType().GetMethod("AddWithoutValidate", BindingFlags.Instance | BindingFlags.NonPublic);
            priMethod.Invoke(request.Headers, new[] { "Date", SnapAppUploadFile.OSS_Date });
            priMethod.Invoke(request.Headers, new[] { "Content-Length", body.Length.ToString() });
            priMethod.Invoke(request.Headers, new[] { "Content-Type", SnapAppUploadFile.OSS_ContentType });
            request.Headers.Add("Authorization", SnapAppUploadFile.OSS_Authorization);
        }
        else
        {
            request.Headers.Add("Token", SnapHttpConfig.NOT_LOGINED_APP_TOKEN);
            request.Headers.Add("UserToken", SnapHttpConfig.LOGINED_APP_TOKEN);
        }

        try
        {
            if (body != null && body.Length > 0)
            {
                using (Stream stream = request.GetRequestStream())
                {
                    stream.Write(body, 0, body.Length);
                    stream.Flush();
                    stream.Close();
                }
            }

            if (callback != null)
            {
                //音频文件
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                {
                    if (response.StatusCode == HttpStatusCode.OK)
                    {
                        using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                        {
                            SnapRpcDataVO rpcData = new SnapRpcDataVO();
                            rpcData.code              = 1;
                            rpcData.message           = "request success";
                            rpcData.data              = new JsonData();
                            rpcData.data["uploadUrl"] = response.ResponseUri.AbsolutePath;
                            //if (callback != null)
                            //{
                            //    callback.Invoke(rpcData);
                            //    callback = null;
                            //}
                            SnapHttpManager.getInstance().AddOneHttpCallBack(callback, rpcData);
                            reader.Close();
                        }
                    }
                    response.Close();
                    request.Abort();
                }
            }
        }
        catch (Exception ex)
        {
            LogManager.Log(ex.Message);
            throw;
        }
        return(request);
    }
    /// <summary>
    /// 获取http请求返回的数据
    /// </summary>
    private void GetHttpResponse(IAsyncResult result)
    {
        HttpWebRequest req = (HttpWebRequest)result.AsyncState;

        using (response = (HttpWebResponse)req.GetResponse())
        {
            GetServerTime(response.Headers);

            if (response.StatusCode == HttpStatusCode.OK)
            {
                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    JsonData      jsonData = JsonMapper.ToObject(new JsonReader(reader.ReadToEnd()));
                    SnapRpcDataVO rpcData  = new SnapRpcDataVO();
                    if (jsonData != null)
                    {
                        rpcData.action = httpRequestVO.requestAction;
                        rpcData.data   = jsonData["data"];
                        rpcData.status = (bool)jsonData["status"];
                        if (rpcData.status == true)
                        {
                            rpcData.code = 1;
                        }
                        else
                        {
                            rpcData.code = int.Parse(jsonData.TryGetString("code"));
                        }
                        rpcData.message = jsonData["message"].ToString();
                    }
                    close();
                    LogManager.LogWarning(" - Result:", JsonMapper.ToJson(jsonData));
                    CheckResponseError(rpcData);
                    //if (httpRequestVO.requestBackAction != null)
                    //{
                    //    httpRequestVO.requestBackAction.Invoke(rpcData);
                    //    httpRequestVO.requestBackAction = null;
                    //}
                }
            }
            else
            {
                LogManager.Log(response.StatusCode);
                close();
                if (response.StatusCode == HttpStatusCode.RequestTimeout ||
                    response.StatusCode == HttpStatusCode.GatewayTimeout)
                {
                    //需要重新请求的错误异常
                    if (needReload)
                    {
                        LogManager.Log("reconnect");
                        if (httpRequestVO.requestErrCount < SnapHttpConfig.NET_RETRY_NUM)
                        {
                            httpRequestVO.requestErrCount++;
                            SnapHttpManager.getInstance().Re_Request_SnapAppApi_Inner(httpRequestVO);
                        }
                    }
                }
                else
                {
                    //全局异常
                    if (SnapAppApi.RequestErrorCodeBack != null)
                    {
                        SnapAppApi.RequestErrorCodeBack.Invoke((int)response.StatusCode);
                    }
                }
            }
        }
    }