Пример #1
0
        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;
                    }
                }
            }
        }
Пример #2
0
        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;
        }