public void FullRefund(global::Nop.Core.Domain.Orders.Order order)
        {
            try
            {
                var configuration = new Klarna.Api.Configuration(Country.Code.SE,
                                                                 Language.Code.SV, Currency.Code.SEK, Encoding.Sweden)
                {
                    Eid        = _klarnaSettings.EId,
                    Secret     = _klarnaSettings.SharedSecret,
                    IsLiveMode = !_klarnaSettings.TestMode
                };

                var api    = new Api(configuration);
                var result = api.CreditInvoice(order.CaptureTransactionId);

                _logger.Information(string.Format(CultureInfo.InvariantCulture, "KlarnaCheckout: Order refunded. InvoiceNumber: {0}, AppliedTo: {1}",
                                                  result, result), customer: order.Customer);

                order.OrderNotes.Add(new OrderNote
                {
                    Note = string.Format(CultureInfo.CurrentCulture, "KlarnaCheckout: Order has been refunded. Invoice Number: {0}; Refund applied to: {1}",
                                         order.CaptureTransactionId, result),
                    CreatedOnUtc      = DateTime.UtcNow,
                    DisplayToCustomer = false
                });
                _orderService.UpdateOrder(order);
            }
            catch (Exception ex)
            {
                throw new KlarnaCheckoutException("An error occurred when refunding order " + order.Id, ex);
            }
        }
        public void FullRefund(global::Nop.Core.Domain.Orders.Order order)
        {
            try
            {
                var configuration = new Klarna.Api.Configuration(Country.Code.SE,
                Language.Code.SV, Currency.Code.SEK, Encoding.Sweden)
                {
                    Eid = _klarnaSettings.EId,
                    Secret = _klarnaSettings.SharedSecret,
                    IsLiveMode = !_klarnaSettings.TestMode
                };

                var api = new Api(configuration);
                var result = api.CreditInvoice(order.CaptureTransactionId);

                _logger.Information(string.Format(CultureInfo.InvariantCulture, "KlarnaCheckout: Order refunded. InvoiceNumber: {0}, AppliedTo: {1}",
                    result, result), customer: order.Customer);

                order.OrderNotes.Add(new OrderNote
                {
                    Note = string.Format(CultureInfo.CurrentCulture, "KlarnaCheckout: Order has been refunded. Invoice Number: {0}; Refund applied to: {1}",
                        order.CaptureTransactionId, result),
                    CreatedOnUtc = DateTime.UtcNow,
                    DisplayToCustomer = false
                });
                _orderService.UpdateOrder(order);
            }
            catch (Exception ex)
            {
                throw new KlarnaCheckoutException("An error occurred when refunding order " + order.Id, ex);
            }
        }