예제 #1
0
        // 查询用户转账结果
        private IEnumerator GetUserTransferResult(string transferFrom, string transferTo, string transactionID)
        {
            FormData formData = new FormData()
                                .AddField("app_id", _appID)
                                .AddField("app_key", _appKey)
                                .AddField("transfer_from", transferFrom)
                                .AddField("transfer_to", transferTo)
                                .AddField("transaction_id", transactionID);

            Request request = new Request(EOTAPI.TransferResult).Post(RequestBody.From(formData));
            Client  http    = new Client();

            yield return(http.Send(request));

            if (http.IsSuccessful())
            {
                Response resp = http.Response();
                Debug.Log("TransferResultResponse: " + resp.Body());

                _transferResultResponse = JsonUtility.FromJson <TransferResultResponse>(resp.Body());
            }
            else
            {
                Debug.LogError("NetWorkError: " + http.Error());
            }
        }
예제 #2
0
        // 确认交易
        public IEnumerator Transfer(string transferFrom, string transferTo, TokenCode tokenCode, string amount)
        {
            yield return(GetUserTransferID(transferFrom, transferTo, tokenCode, amount));

            if (_transferRequestResponse == null)
            {
                UserTransferResult.Code = EOTConstant.CODE_NETWORK_ERROR;
                UserTransferResult.Msg  = EOTConstant.MSG_NETWORK_ERROR;

                Debug.LogError("TransferRequestResponse is null!!!");

                yield break;
            }

            if (!_transferRequestResponse.success)
            {
                UserTransferResult.Code = _transferRequestResponse.code;
                UserTransferResult.Msg  = _transferRequestResponse.msg;

                Debug.LogError("Get user transfer id failed!!!");
                Debug.LogError("Code: " + _transferRequestResponse.code + " Msg: " + _transferRequestResponse.msg);

                yield break;
            }

            // 打开浏览器,让用户自行验证
            string webURl = string.Format(EOTWeb.UserTransfer, _appID, _transferRequestResponse.transactionID,
                                          transferFrom, transferTo, (int)tokenCode, amount);

            Application.OpenURL(webURl);
            yield return(new WaitForSeconds(6.0f));

            _transferResultResponse = null;

            while (true)
            {
                yield return(GetUserTransferResult(transferFrom, transferTo, _transferRequestResponse.transactionID));

                if (_transferResultResponse == null)
                {
                    UserTransferResult.Code = EOTConstant.CODE_NETWORK_ERROR;
                    UserTransferResult.Msg  = EOTConstant.MSG_NETWORK_ERROR;
                    break;
                }

                if (!_transferResultResponse.success)
                {
                    UserTransferResult.Code = _transferResultResponse.code;
                    UserTransferResult.Msg  = _transferResultResponse.msg;
                    break;
                }

                if (_transferResultResponse.resultCode == ResultCode.SUCCESSFUL)
                {
                    UserTransferResult.Code          = EOTConstant.CODE_SUCCESS;
                    UserTransferResult.Msg           = EOTConstant.MSG_SUCCESS;
                    UserTransferResult.TransactionID = _transferRequestResponse.transactionID;
                    break;
                }

                yield return(new WaitForSeconds(1));
            }
        }