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); } }