public void Acknowledge(Uri resourceUri, global::Nop.Core.Domain.Orders.Order order) { try { var connector = Connector.Create(_klarnaSettings.SharedSecret); var klarnaOrder = new Klarna.Checkout.Order(connector, resourceUri) { ContentType = ContentType }; klarnaOrder.Fetch(); var fetchedData = klarnaOrder.Marshal(); var typedData = KlarnaOrder.FromDictionary(fetchedData); if (typedData.Status == KlarnaOrder.StatusCheckoutComplete) { var updateData = new KlarnaOrder { Status = KlarnaOrder.StatusCreated, MerchantReference = new MerchantReference { OrderId1 = order.Id.ToString(CultureInfo.InvariantCulture), OrderId2 = order.OrderGuid.ToString() } }; var dictData = updateData.ToDictionary(); klarnaOrder.Update(dictData); } } catch (Exception ex) { throw new NopException("Error Acknowledging Klarna Order", ex); } }
public Uri Create() { var cart = _klarnaCheckoutUtils.GetCart(); var merchant = _klarnaCheckoutUtils.GetMerchant(); var supportedLocale = _klarnaCheckoutUtils.GetSupportedLocale(); var gui = _klarnaCheckoutUtils.GetGui(); var options = _klarnaCheckoutUtils.GetOptions(); var klarnaOrder = new KlarnaOrder { Cart = cart, Merchant = merchant, Gui = gui, Options = options, Locale = supportedLocale.Locale, PurchaseCountry = supportedLocale.PurchaseCountry, PurchaseCurrency = supportedLocale.PurchaseCurrency }; var dictData = klarnaOrder.ToDictionary(); var connector = Connector.Create(_klarnaSettings.SharedSecret); var order = new Klarna.Checkout.Order(connector) { BaseUri = new Uri(BaseUri), ContentType = ContentType }; order.Create(dictData); var location = order.Location; var kcoOrderRequest = GetKcoOrderRequest(_workContext.CurrentCustomer, location); _klarnaRepository.Insert(kcoOrderRequest); return location; }
public bool Update(Uri resourceUri) { try { var cart = _klarnaCheckoutUtils.GetCart(); var options = _klarnaCheckoutUtils.GetOptions(); var connector = Connector.Create(_klarnaSettings.SharedSecret); var supportedLocale = _klarnaCheckoutUtils.GetSupportedLocale(); var klarnaOrder = new KlarnaOrder { Cart = cart, Options = options, Locale = supportedLocale.Locale, PurchaseCountry = supportedLocale.PurchaseCountry, PurchaseCurrency = supportedLocale.PurchaseCurrency }; var order = new Order(connector, resourceUri) { ContentType = ContentType }; var dictData = klarnaOrder.ToDictionary(); order.Update(dictData); return true; } catch (Exception ex) { var exceptionJson = JsonConvert.SerializeObject(ex.Data); _logger.Warning(string.Format(CultureInfo.CurrentCulture, "KlarnaCheckout: Error updating Klarna order. Will try to create a new one. ResourceURI: {0}, Data: {1}", resourceUri, exceptionJson), exception: ex); } return false; }