Пример #1
0
        public async Task <PagSeguroBoletoResponse> CreateBoletoAsync(PagSeguroBoletoRequest request)
        {
            try
            {
                _logger.LogInformation($"Creating Boleto - {request.Reference}");

                var queryString = new Dictionary <string, string>
                {
                    { nameof(_settings.Email).ToLower(), _settings.Email },
                    { nameof(_settings.Token).ToLower(), _settings.Token }
                };

                using var response = await _client.PostAsJsonAsync(_settings.BoletoRequestUrl,
                                                                   request,
                                                                   _settings.Encoding,
                                                                   queryString);

                if (!response.IsSuccessStatusCode)
                {
                    throw new PagSeguroException(response.StatusCode,
                                                 await PagSeguroExceptionHelper
                                                 .HandlePagSeguroInvalidRequest(response));
                }

                var result = await response.Content.ReadAsJsonAsync <PagSeguroBoletoResponse>();

                return(result);
            }
            catch (PagSeguroException e)
            {
                _logger.LogError($"Failed to create boleto {request.Reference}", e);
                throw e;
            }
        }
Пример #2
0
        public async Task <Boleto> CreateBoletoAsync(BoletoRequest request)
        {
            var boletoRequest = new PagSeguroBoletoRequest();

            try
            {
                var boleto = await _boletoService.CreateBoletoAsync(boletoRequest);

                // TODO map to boleto
                return(new Boleto());
            }
            catch (PagSeguroException e)
            {
                _log.LogError($"Error creating boleto on {nameof(PagSeguroGateway)} | {e.Errors}");
                // TODO map to domain exception
                throw;
            }
        }