// 查询用户验证结果 private IEnumerator GetUserVerifyResult(string userName, string verifyID) { FormData formData = new FormData() .AddField("app_id", _appID) .AddField("app_key", _appKey) .AddField("app_user", userName) .AddField("verify_id", verifyID); Request request = new Request(EOTAPI.VerifyResult).Post(RequestBody.From(formData)); Client http = new Client(); yield return(http.Send(request)); if (http.IsSuccessful()) { Response resp = http.Response(); Debug.Log("VerifyResultResponse: " + resp.Body()); _verifyResultResponse = JsonUtility.FromJson <VerifyResultResponse>(resp.Body()); } else { Debug.LogError("NetWorkError: " + http.Error()); } }
// 验证用户 public IEnumerator VerifyUser(string userName) { yield return(GetUserVerifyID(userName)); if (_verifyRequestResponse == null) { UserVerifyResult.Code = EOTConstant.CODE_NETWORK_ERROR; UserVerifyResult.Msg = EOTConstant.MSG_NETWORK_ERROR; Debug.LogError("VerifyRequestResponse is null!!!"); yield break; } if (!_verifyRequestResponse.success) { UserVerifyResult.Code = _verifyRequestResponse.code; UserVerifyResult.Msg = _verifyRequestResponse.msg; Debug.LogError("Get user verify id failed!!!"); Debug.LogError("Code: " + _verifyRequestResponse.code + " Msg: " + _verifyRequestResponse.msg); yield break; } // 打开浏览器,让用户自行验证 string webURl = string.Format(EOTWeb.UserVerify, _appID, userName, _verifyRequestResponse.verifyID); Application.OpenURL(webURl); yield return(new WaitForSeconds(6.0f)); _verifyResultResponse = null; while (true) { yield return(GetUserVerifyResult(userName, _verifyRequestResponse.verifyID)); if (_verifyResultResponse == null) { UserVerifyResult.Code = EOTConstant.CODE_NETWORK_ERROR; UserVerifyResult.Msg = EOTConstant.MSG_NETWORK_ERROR; break; } if (!_verifyResultResponse.success) { UserVerifyResult.Code = _verifyResultResponse.code; UserVerifyResult.Msg = _verifyResultResponse.msg; break; } if (_verifyResultResponse.resultCode == ResultCode.SUCCESSFUL) { UserVerifyResult.Code = EOTConstant.CODE_SUCCESS; UserVerifyResult.Msg = EOTConstant.MSG_SUCCESS; break; } yield return(new WaitForSeconds(1)); } }