static void Main(string[] args) { // Set your credentials and point to an API environment // Remember to set $MERCHANT_ID$ and $PASSWORD$ to your account's values // More about authentication here https://developers.klarna.com/api/#authentication Console.WriteLine("Setting up authentication against environment: {0:G}", KlarnaEnvironment.TestingEurope); var klarna = new Klarna.Rest.Core.Klarna("$MERCHANT_ID", "$PASSWORD$", KlarnaEnvironment.TestingEurope); Console.WriteLine("Constructing order body"); // Prepare an order by constructing its body var order = new Klarna.Rest.Core.Model.CheckoutOrder { PurchaseCountry = "se", PurchaseCurrency = "sek", Locale = "sv-se", OrderAmount = 10000, OrderTaxAmount = 2000, MerchantUrls = new CheckoutMerchantUrls { Terms = "https://www.example.com/terms.html", Checkout = "https://www.example.com/checkout.html", Confirmation = "https://www.example.com/confirmation.html", Push = "https://www.example.com/push.html" }, OrderLines = new List <OrderLine>() { new OrderLine { Type = OrderLineType.physical, Name = "Foo", Quantity = 1, UnitPrice = 10000, TaxRate = 2500, TotalAmount = 10000, TotalTaxAmount = 2000, TotalDiscountAmount = 0 } }, CheckoutOptions = new CheckoutOptions { AllowSeparateShippingAddress = false, ColorButton = "#FF9900", ColorButtonText = "#FF9900", ColorCheckbox = "#FF9900", ColorCheckboxCheckmark = "#FF9900", ColorHeader = "#FF9900", ColorLink = "#FF9900", DateOfBirthMandatory = false, ShippingDetails = "bar", AllowedCustomerTypes = new List <string>() { "person", "organization" } } }; // Proceed with operating against the Klarna Checkout API try { // Create the order Console.WriteLine("Calling Klarna API to create order"); var createdOrder = klarna.Checkout.CreateOrder(order).Result; Console.WriteLine("Klarna API returned created order with ID {0:G}", createdOrder.OrderId); // Superfluous, just to show you that you can retrieve a created order after the fact var fetchedOrder = klarna.Checkout.GetOrder(createdOrder.OrderId).Result; Console.WriteLine("Fetching order with ID {0:G} from Klarna API", createdOrder.OrderId); // Modify the created order by adding an item Console.WriteLine("Modifying order by adding a new OrderLine item"); fetchedOrder.OrderLines.Add(new OrderLine { Type = OrderLineType.physical, Name = "Foo2", Quantity = 1, UnitPrice = 10000, TaxRate = 2500, TotalAmount = 10000, TotalTaxAmount = 2000, TotalDiscountAmount = 0, }); // Update the amounts appropriately taking into account all Orderlines fetchedOrder.OrderAmount = 20000; fetchedOrder.OrderTaxAmount = 4000; // Update the order via calling the Klarna Checkout API Console.WriteLine("Update order by calling the Klarna API with modified order details"); var updatedOrder = klarna.Checkout.UpdateOrder(fetchedOrder).Result; Console.WriteLine("Klarna API responded with updated order details for order with ID {0:G}", updatedOrder.OrderId); } catch (AggregateException ae) { foreach (var e in ae.InnerExceptions) { if (e is ApiException) { var apiException = (ApiException)e; Console.WriteLine("Status code: " + apiException.StatusCode); Console.WriteLine("Error: " + string.Join("; ", apiException.ErrorMessage.ErrorMessages)); } else { // Rethrow any other exception or process it Console.WriteLine(e.Message); throw; } } } }
static void Main(string[] args) { var klarna = new Klarna.Rest.Core.Klarna("K501001_a0dccbb272e5", "eJxoWRXrpLQ0JcIp", KlarnaEnvironment.TestingEurope); var order = new Klarna.Rest.Core.Model.CheckoutOrder { PurchaseCountry = "se", PurchaseCurrency = "sek", Locale = "sv-se", OrderAmount = 10000, OrderTaxAmount = 3000, MerchantUrls = new CheckoutMerchantUrls { Terms = "https://www.estore.com/terms.html", Checkout = "https://www.estore.com/checkout.html", Confirmation = "https://www.estore.com/confirmation.html", Push = "https://www.estore.com/push.html" }, OrderLines = new List <OrderLine>() { new OrderLine { Type = OrderLineType.physical, Name = "Foo", Quantity = 1, UnitPrice = 10000, TaxRate = 2500, TotalAmount = 10000, TotalTaxAmount = 2000, TotalDiscountAmount = 0, } }, CheckoutOptions = new CheckoutOptions { AllowSeparateShippingAddress = false, ColorButton = "#FF9900", ColorButtonText = "#FF9900", ColorCheckbox = "#FF9900", ColorCheckboxCheckmark = "#FF9900", ColorHeader = "#FF9900", ColorLink = "#FF9900", DateOfBirthMandatory = false, ShippingDetails = "bar", } }; try { var createdOrder = klarna.Checkout.CreateOrder(order).Result; } catch (ApiException ex) { Console.WriteLine(ex); } var fetchedOrder = klarna.Checkout.GetOrder("56fb8a38-1e83-4dd7-a89f-9f297e7e95eb").Result; fetchedOrder.OrderLines.Add(new OrderLine { Type = OrderLineType.physical, Name = "Foo2", Quantity = 1, UnitPrice = 10000, TaxRate = 2500, TotalAmount = 10000, TotalTaxAmount = 2000, TotalDiscountAmount = 0, }); fetchedOrder.OrderAmount = 20000; fetchedOrder.OrderTaxAmount = 2000; var updatedOrder = klarna.Checkout.UpdateOrder(fetchedOrder).Result; }