// 查询用户转账结果 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()); } }
// 确认交易 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)); } }