public async Task <IActionResult> WithdrawAsync([FromBody] WithdrawTransactionRequest request) { var createTransactionRequest = new CreateTransactionRequest { Bundle = request.BundleId }; var createTransactionResponse = await _cashierServiceClient.CreateTransactionAsync(createTransactionRequest); try { var createPaypalPayoutRequest = new CreatePaypalPayoutRequest { Email = request.Email, Transaction = createTransactionResponse.Transaction }; await _paymentServiceClient.CreatePaypalPayoutAsync(createPaypalPayoutRequest); return(this.Ok()); } catch (RpcException exception) { var cancelTransactionRequest = new CancelTransactionRequest { TransactionId = createTransactionResponse.Transaction.Id }; await _cashierServiceClient.CancelTransactionAsync(cancelTransactionRequest); throw exception.Capture(); } }
public Task <WithdrawTransaction> GetWithdrawTransactionAsync(long taskId, CancellationToken cancellationToken = default) { var request = new WithdrawTransactionRequest { TaskId = taskId }; return(_client.PostAsync <WithdrawTransaction>("withdraw_get_txid", request, cancellationToken)); }