コード例 #1
0
        /// <summary>
        /// Gets the order.
        /// </summary>
        public void GetOrder()
        {
            // X-Example: GET /ordermanagement/v1/orders/{order_id}
            var username = "******";
            var password = "******";

            var klarna  = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var orderId = "abc-abcdefg-abc";

            try
            {
                var order = klarna.OrderManagement.GetOrder(orderId).Result;
            }
            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;
                    }
                }
            }
            // /X-Example: GET /ordermanagement/v1/orders/{order_id}
        }
コード例 #2
0
        /// <summary>
        /// Run the example code.
        /// Remember to replace username and password with valid Klarna credentials.
        /// </summary>
        public static void Main()
        {
            var username = "******";
            var password = "******";
            var orderId  = "1234";

            var client = new Klarna(username, password, KlarnaEnvironment.TestingEurope);

            try
            {
                var order = client.Checkout.GetOrder(orderId).Result;
                Console.WriteLine(order.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;
                    }
                }
            }
        }
コード例 #3
0
            /// <summary>
            /// Run the example code.
            /// Remember to replace username and password with valid Klarna credentials.
            /// </summary>
            public static void Main()
            {
                var username = "******";
                var password = "******";
                var orderId  = "1234";

                var client = new Klarna(username, password, KlarnaEnvironment.TestingEurope);

                try
                {
                    var order = client.Checkout.GetOrder(orderId).Result;
                    order.OrderAmount    = 20000;
                    order.OrderTaxAmount = 4000;
                    order.OrderLines     = new List <OrderLine>
                    {
                        new OrderLine
                        {
                            Type                = OrderLineType.physical,
                            Name                = "Foo",
                            Quantity            = 1,
                            UnitPrice           = 10000,
                            TaxRate             = 2500,
                            TotalAmount         = 10000,
                            TotalTaxAmount      = 2000,
                            TotalDiscountAmount = 0,
                        },
                        new OrderLine
                        {
                            Type                = OrderLineType.physical,
                            Name                = "Foo2",
                            Quantity            = 1,
                            UnitPrice           = 10000,
                            TaxRate             = 2500,
                            TotalAmount         = 10000,
                            TotalTaxAmount      = 2000,
                            TotalDiscountAmount = 0,
                        }
                    };

                    var updatedOrder = client.Checkout.UpdateOrder(order).Result;
                }
                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;
                        }
                    }
                }
            }
コード例 #4
0
        /// <summary>
        /// Reads the session.
        /// </summary>
        public void ReadSession()
        {
            var username = "******";
            var password = "******";

            var klarna    = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var sessionId = "234534...345345....345";

            try
            {
                var session = klarna.Payment.GetCreditSession(sessionId).Result;
                Console.WriteLine("Client Token: " + session.ClientToken);
                var billingInfo = session.BillingAddress;
                var orderslines = session.OrderLines;
            }
            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;
                    }
                }
            }
        }
コード例 #5
0
        /// <summary>
        /// Resends the consumer sendouts.
        /// </summary>
        public void ResendConsumerSendouts()
        {
            var username = "******";
            var password = "******";

            var klarna    = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var orderId   = "abc-abcdefg-abc";
            var captureId = "23424....234234234.....234234";

            try
            {
                klarna.OrderManagement.TriggerResendOfCustomerCommunication(orderId, captureId).RunSynchronously();
            }
            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;
                    }
                }
            }
        }
コード例 #6
0
        /// <summary>
        /// Gets the customer token details.
        /// </summary>
        public void GetCustomerTokenDetails()
        {
            var username = "******";
            var password = "******";

            var klarna        = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var customerToken = "234534...345345....345";

            try
            {
                var session = klarna.CustomerToken.GetCustomerTokenDetails(customerToken).Result;
                Console.WriteLine("payment method: " + session.PaymentMethodType);
                Console.WriteLine("Status: " + session.Status);
            }
            catch (ApiException ex)
            {
                Console.WriteLine(ex.ErrorMessage.ErrorCode);
                Console.WriteLine(ex.ErrorMessage.ErrorMessages);
                Console.WriteLine(ex.ErrorMessage.CorrelationId);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #7
0
        /// <summary>
        /// Acknowledges the order.
        /// </summary>
        public void AcknowledgeOrder()
        {
            var username = "******";
            var password = "******";

            var klarna  = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var orderId = "abc-abcdefg-abc";

            try
            {
                klarna.OrderManagement.AcknowledgeOrder(orderId).RunSynchronously();
            }
            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;
                    }
                }
            }
        }
コード例 #8
0
        /// <summary>
        /// Reads the session.
        /// </summary>
        public void ReadSession()
        {
            var username = "******";
            var password = "******";

            var klarna    = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var sessionId = "234534...345345....345";

            try
            {
                var session = klarna.Payment.GetCreditSession(sessionId).Result;
                Console.WriteLine("Client Token: " + session.ClientToken);
                var billingInfo = session.BillingAddress;
                var orderslines = session.OrderLines;
            }
            catch (ApiException ex)
            {
                Console.WriteLine(ex.ErrorMessage.ErrorCode);
                Console.WriteLine(ex.ErrorMessage.ErrorMessages);
                Console.WriteLine(ex.ErrorMessage.CorrelationId);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #9
0
        /// <summary>
        /// Deletes the authorization.
        /// </summary>
        public void DeleteAuthorization()
        {
            var username = "******";
            var password = "******";

            var klarna             = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var authorizationToken = "234534...345345....345";

            try
            {
                klarna.Payment.CancelAuthorization(authorizationToken).RunSynchronously();
            }
            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;
                    }
                }
            }
        }
コード例 #10
0
        /// <summary>
        /// Gets the customer token details.
        /// </summary>
        public void GetCustomerTokenDetails()
        {
            var username = "******";
            var password = "******";

            var klarna        = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var customerToken = "234534...345345....345";

            try
            {
                var session = klarna.CustomerToken.GetCustomerTokenDetails(customerToken).Result;
                Console.WriteLine("payment method: " + session.PaymentMethodType);
                Console.WriteLine("Status: " + session.Status);
            }
            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;
                    }
                }
            }
        }
コード例 #11
0
        /// <summary>
        /// Refunds the order.
        /// </summary>
        public void RefundOrder()
        {
            // X-Example: POST /ordermanagement/v1/orders/{order_id}/refunds
            var username = "******";
            var password = "******";

            var klarna  = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var orderId = "abc-abcdefg-abc";

            try
            {
                var refundData = new OrderManagementRefund
                {
                    RefundedAmount = 10000,
                    Description    = "Full refund for order",
                    OrderLines     = new List <OrderLine>()
                    {
                        new OrderLine
                        {
                            Type                = OrderLineType.physical,
                            Name                = "Foo",
                            Quantity            = 1,
                            UnitPrice           = 10000,
                            TaxRate             = 2500,
                            TotalAmount         = 10000,
                            TotalTaxAmount      = 2000,
                            TotalDiscountAmount = 0,
                        }
                    }
                };
                var refund = klarna.OrderManagement.CreateAndFetchRefund(orderId, refundData).Result;
                Console.WriteLine("Order has been refunded");
                Console.WriteLine(refund.RefundId);
                Console.WriteLine(refund.RefundedAt);
                Console.WriteLine(refund.RefundedAmount);
            }
            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;
                    }
                }
            }
            // /X-Example: POST /ordermanagement/v1/orders/{order_id}/refunds
        }
コード例 #12
0
        public void CreateOrderOnCustomerToken()
        {
            // X-Example: POST /customer-token/v1/tokens/{customerToken}/order
            var username = "******";
            var password = "******";

            var klarna        = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var customerToken = "234534...345345....345";
            var orderData     = new CustomerTokenOrder
            {
                PurchaseCurrency   = "SEK",
                OrderAmount        = 1000,
                OrderTaxAmount     = 2000,
                MerchantReference1 = "StoreOrderId",
                AutoCapture        = true,
                OrderLines         = new List <OrderLine>()
                {
                    new OrderLine
                    {
                        Type                = OrderLineType.physical,
                        Name                = "Foo",
                        Quantity            = 1,
                        UnitPrice           = 10000,
                        TaxRate             = 2500,
                        TotalAmount         = 10000,
                        TotalTaxAmount      = 2000,
                        TotalDiscountAmount = 0,
                    }
                },
            };

            try
            {
                var order = klarna.CustomerToken.CreateOrder(customerToken, orderData).Result;
                Console.WriteLine("OrderId: " + order.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;
                    }
                }
            }
            // /X-Example: POST /customer-token/v1/tokens/{customerToken}/order
        }
コード例 #13
0
        /// <summary>
        /// Captures the order.
        /// </summary>
        public void CaptureOrder()
        {
            var username = "******";
            var password = "******";

            var klarna  = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var orderId = "abc-abcdefg-abc";

            try
            {
                var captureData = new OrderManagementCreateCapture
                {
                    CapturedAmount = 10000,
                    Description    = "Full capture of the order",
                    OrderLines     = new List <OrderLine>()
                    {
                        new OrderLine
                        {
                            Type                = OrderLineType.physical,
                            Name                = "Foo",
                            Quantity            = 1,
                            UnitPrice           = 10000,
                            TaxRate             = 2500,
                            TotalAmount         = 10000,
                            TotalTaxAmount      = 2000,
                            TotalDiscountAmount = 0,
                        }
                    },
                    ShippingInfo = new List <OrderManagementShippingInfo>()
                    {
                        new OrderManagementShippingInfo
                        {
                            ShippingMethod        = OrderManagementShippingMethod.PickUpPoint,
                            ShippingCompany       = "PostNord",
                            TrackingUri           = "https://trackingpageofcarrier.com",
                            TrackingNumber        = "345...33",
                            ReturnTrackingUri     = "https://trackingpageofreturntracking.com",
                            ReturnTrackingNumber  = "675...575",
                            ReturnShippingCompany = "PostNord"
                        }
                    }
                };
                klarna.OrderManagement.CreateCapture(orderId, captureData).RunSynchronously();
            }
            catch (ApiException ex)
            {
                Console.WriteLine(ex.ErrorMessage.ErrorCode);
                Console.WriteLine(ex.ErrorMessage.ErrorMessages);
                Console.WriteLine(ex.ErrorMessage.CorrelationId);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #14
0
            /// <summary>
            /// Run the example code.
            /// Remember to replace username and password with valid Klarna credentials.
            /// </summary>
            public static void Main()
            {
                var username = "******";
                var password = "******";
                var orderId  = "1234";

                var client = new Klarna(username, password, KlarnaEnvironment.TestingEurope);

                try
                {
                    var order = client.Checkout.GetOrder(orderId).Result;
                    order.OrderAmount    = 20000;
                    order.OrderTaxAmount = 4000;
                    order.OrderLines     = new List <OrderLine>
                    {
                        new OrderLine
                        {
                            Type                = OrderLineType.physical,
                            Name                = "Foo",
                            Quantity            = 1,
                            UnitPrice           = 10000,
                            TaxRate             = 2500,
                            TotalAmount         = 10000,
                            TotalTaxAmount      = 2000,
                            TotalDiscountAmount = 0,
                        },
                        new OrderLine
                        {
                            Type                = OrderLineType.physical,
                            Name                = "Foo2",
                            Quantity            = 1,
                            UnitPrice           = 10000,
                            TaxRate             = 2500,
                            TotalAmount         = 10000,
                            TotalTaxAmount      = 2000,
                            TotalDiscountAmount = 0,
                        }
                    };

                    var updatedOrder = client.Checkout.UpdateOrder(order).Result;
                }
                catch (ApiException ex)
                {
                    Console.WriteLine(ex.ErrorMessage.ErrorCode);
                    Console.WriteLine(ex.ErrorMessage.ErrorMessages);
                    Console.WriteLine(ex.ErrorMessage.CorrelationId);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
コード例 #15
0
        public IActionResult OrderConfirmed(string klarna_order_id)
        {
            string stdUri = "https://checkout.testdrive.klarna.com/checkout/orders";

            Klarna k       = new Klarna();
            var    snippet = k.GetRequest(stdUri + "/" + klarna_order_id);

            ShoppingCart.EmptyCartCookie(HttpContext);

            ViewBag.snippet = snippet;

            return(View("OrderConfirmed", snippet));
        }
コード例 #16
0
        public void CreateConsumerToken()
        {
            // X-Example: POST /payments/v1/authorizations/{authorizationToken}/customer-token
            var username = "******";
            var password = "******";

            var klarna = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var authorization_token = "234534...345345....345";
            var consumertokenreqest = new PaymentGenerateConsumerTokenRequest {
                BillingAddress = new PaymentAddressInfo {
                    GivenName     = "John",
                    FamilyName    = "Doe",
                    StreetAddress = "Sveavägen 46",
                    PostalCode    = "103 69",
                    Country       = "SE",
                    Email         = "*****@*****.**",
                    City          = "Stockholm",
                    Phone         = "+46752242244"
                }
            };

            try
            {
                var consumertoken = klarna.Payment.GenerateConsumerToken(authorization_token, consumertokenreqest).Result;
                Console.WriteLine("Consumer Token ID: " + consumertoken.TokenId);
            }
            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;
                    }
                }
            }
            // /X-Example: POST /payments/v1/authorizations/{authorizationToken}/customer-token
        }
コード例 #17
0
        public void CreateOrderOnCustomerToken()
        {
            var username = "******";
            var password = "******";

            var klarna        = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var customerToken = "234534...345345....345";
            var orderData     = new CustomerTokenOrder
            {
                PurchaseCurrency   = "SEK",
                OrderAmount        = 1000,
                OrderTaxAmount     = 2000,
                MerchantReference1 = "StoreOrderId",
                AutoCapture        = true,
                OrderLines         = new List <OrderLine>()
                {
                    new OrderLine
                    {
                        Type                = OrderLineType.physical,
                        Name                = "Foo",
                        Quantity            = 1,
                        UnitPrice           = 10000,
                        TaxRate             = 2500,
                        TotalAmount         = 10000,
                        TotalTaxAmount      = 2000,
                        TotalDiscountAmount = 0,
                    }
                },
            };

            try
            {
                var order = klarna.CustomerToken.CreateOrder(customerToken, orderData).Result;
                Console.WriteLine("OrderId: " + order.OrderId);
            }
            catch (ApiException ex)
            {
                Console.WriteLine(ex.ErrorMessage.ErrorCode);
                Console.WriteLine(ex.ErrorMessage.ErrorMessages);
                Console.WriteLine(ex.ErrorMessage.CorrelationId);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #18
0
        /// <summary>
        /// Refunds the order.
        /// </summary>
        public void RefundOrder()
        {
            var username = "******";
            var password = "******";

            var klarna  = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var orderId = "abc-abcdefg-abc";

            try
            {
                var refundData = new OrderManagementRefund
                {
                    RefundedAmount = 10000,
                    Description    = "Full refund for order",
                    OrderLines     = new List <OrderLine>()
                    {
                        new OrderLine
                        {
                            Type                = OrderLineType.physical,
                            Name                = "Foo",
                            Quantity            = 1,
                            UnitPrice           = 10000,
                            TaxRate             = 2500,
                            TotalAmount         = 10000,
                            TotalTaxAmount      = 2000,
                            TotalDiscountAmount = 0,
                        }
                    }
                };
                klarna.OrderManagement.CreateRefund(orderId, refundData).RunSynchronously();
            }
            catch (ApiException ex)
            {
                Console.WriteLine(ex.ErrorMessage.ErrorCode);
                Console.WriteLine(ex.ErrorMessage.ErrorMessages);
                Console.WriteLine(ex.ErrorMessage.CorrelationId);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #19
0
        public IActionResult CheckOut()
        {
            var    cart = ShoppingCart.GetCart(_context, HttpContext);
            Klarna k    = new Klarna();

            var response = k.PostRequest(k.createJsonData(cart));

            var snippet = "";

            if (response.StatusCode == System.Net.HttpStatusCode.Created)
            {
                var location = response.Headers.Location.AbsoluteUri;

                //hämta ordern

                snippet = k.GetRequest(location);
            }

            ViewBag.snippet = snippet;

            return(View("CheckOut", snippet));
        }
コード例 #20
0
        public static void Main()
        {
            var username   = "******";
            var password   = "******";
            var apiUrl     = Klarna.ApiUrlFromEnvironment(KlarnaEnvironment.TestingEurope);
            var useragent  = Klarna.GetDefaultUserAgent();
            var apiSession = new ApiSession
            {
                ApiUrl      = apiUrl,
                UserAgent   = useragent,
                Credentials = new ApiCredentials
                {
                    Username = username,
                    Password = password,
                }
            };
            var jsonSerializer = new JsonSerializerWithLoggingToConsole();

            var client = new Klarna(apiSession, jsonSerializer);

            var order = client.Checkout.GetOrder("12345").Result;
        }
コード例 #21
0
        /// <summary>
        /// Acknowledges the order.
        /// </summary>
        public void AcknowledgeOrder()
        {
            var username = "******";
            var password = "******";

            var klarna  = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var orderId = "abc-abcdefg-abc";

            try
            {
                klarna.OrderManagement.AcknowledgeOrder(orderId).RunSynchronously();
            }
            catch (ApiException ex)
            {
                Console.WriteLine(ex.ErrorMessage.ErrorCode);
                Console.WriteLine(ex.ErrorMessage.ErrorMessages);
                Console.WriteLine(ex.ErrorMessage.CorrelationId);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #22
0
        /// <summary>
        /// Deletes the authorization.
        /// </summary>
        public void DeleteAuthorization()
        {
            var username = "******";
            var password = "******";

            var klarna             = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var authorizationToken = "234534...345345....345";

            try
            {
                klarna.Payment.CancelAuthorization(authorizationToken).RunSynchronously();
            }
            catch (ApiException ex)
            {
                Console.WriteLine(ex.ErrorMessage.ErrorCode);
                Console.WriteLine(ex.ErrorMessage.ErrorMessages);
                Console.WriteLine(ex.ErrorMessage.CorrelationId);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #23
0
        /// <summary>
        /// Resends the consumer sendouts.
        /// </summary>
        public void ResendConsumerSendouts()
        {
            var username = "******";
            var password = "******";

            var klarna    = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var orderId   = "abc-abcdefg-abc";
            var captureId = "23424....234234234.....234234";

            try
            {
                klarna.OrderManagement.TriggerResendOfCustomerCommunication(orderId, captureId).RunSynchronously();
            }
            catch (ApiException ex)
            {
                Console.WriteLine(ex.ErrorMessage.ErrorCode);
                Console.WriteLine(ex.ErrorMessage.ErrorMessages);
                Console.WriteLine(ex.ErrorMessage.CorrelationId);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #24
0
        /// <summary>
        /// Run the example code.
        /// Remember to replace username and password with valid Klarna credentials.
        /// </summary>
        public static void Main()
        {
            var username = "******";
            var password = "******";
            var orderId  = "1234";

            var client = new Klarna(username, password, KlarnaEnvironment.TestingEurope);

            try
            {
                var order = client.Checkout.GetOrder(orderId).Result;
                Console.WriteLine(order.OrderId);
            }
            catch (ApiException ex)
            {
                Console.WriteLine(ex.ErrorMessage.ErrorCode);
                Console.WriteLine(ex.ErrorMessage.ErrorMessages);
                Console.WriteLine(ex.ErrorMessage.CorrelationId);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #25
0
        public void CreateConsumerToken()
        {
            var username = "******";
            var password = "******";

            var klarna = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var authorization_token = "234534...345345....345";
            var consumertokenreqest = new PaymentGenerateConsumerTokenRequest {
                BillingAddress = new PaymentAddressInfo {
                    GivenName     = "John",
                    FamilyName    = "Doe",
                    StreetAddress = "Sveavägen 46",
                    PostalCode    = "103 69",
                    Country       = "SE",
                    Email         = "*****@*****.**",
                    City          = "Stockholm",
                    Phone         = "+46752242244"
                }
            };

            try
            {
                var consumertoken = klarna.Payment.GenerateConsumerToken(authorization_token, consumertokenreqest).Result;
                Console.WriteLine("Consumer Token ID: " + consumertoken.TokenId);
            }
            catch (ApiException ex)
            {
                Console.WriteLine(ex.ErrorMessage.ErrorCode);
                Console.WriteLine(ex.ErrorMessage.ErrorMessages);
                Console.WriteLine(ex.ErrorMessage.CorrelationId);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
コード例 #26
0
        public void Client_TestNATestingUrl()
        {
            var client = new Klarna(string.Empty, string.Empty, KlarnaEnvironment.TestingNorthAmerica);

            Assert.Equal("https://api-na.playground.klarna.com/", client.ApiSession.ApiUrl);
        }
コード例 #27
0
        /// <summary>
        /// Captures the order.
        /// </summary>
        public void CaptureOrder()
        {
            var username = "******";
            var password = "******";

            var klarna  = new Klarna(username, password, KlarnaEnvironment.TestingEurope);
            var orderId = "abc-abcdefg-abc";

            try
            {
                var captureData = new OrderManagementCreateCapture
                {
                    CapturedAmount = 10000,
                    Description    = "Full capture of the order",
                    OrderLines     = new List <OrderLine>()
                    {
                        new OrderLine
                        {
                            Type                = OrderLineType.physical,
                            Name                = "Foo",
                            Quantity            = 1,
                            UnitPrice           = 10000,
                            TaxRate             = 2500,
                            TotalAmount         = 10000,
                            TotalTaxAmount      = 2000,
                            TotalDiscountAmount = 0,
                        }
                    },
                    ShippingInfo = new List <OrderManagementShippingInfo>()
                    {
                        new OrderManagementShippingInfo
                        {
                            ShippingMethod        = OrderManagementShippingMethod.PickUpPoint,
                            ShippingCompany       = "PostNord",
                            TrackingUri           = "https://trackingpageofcarrier.com",
                            TrackingNumber        = "345...33",
                            ReturnTrackingUri     = "https://trackingpageofreturntracking.com",
                            ReturnTrackingNumber  = "675...575",
                            ReturnShippingCompany = "PostNord"
                        }
                    }
                };
                klarna.OrderManagement.CreateCapture(orderId, captureData).RunSynchronously();
            }
            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;
                    }
                }
            }
        }
コード例 #28
0
        public static KlarnaCheckoutOrder FromApiOrder(Klarna.Checkout.Order order)
        {
            if (order == null) throw new ArgumentNullException(nameof(order));

            var data = order.Marshal();
            var jsonData = JsonConvert.SerializeObject(data);

            return JsonConvert.DeserializeObject<KlarnaCheckoutOrder>(jsonData);
        }
コード例 #29
0
        public void Client_TestEULiveUrl()
        {
            var client = new Klarna(string.Empty, string.Empty, KlarnaEnvironment.LiveEurope);

            Assert.Equal("https://api.klarna.com/", client.ApiSession.ApiUrl);
        }
コード例 #30
0
        public void Client_OrderManagementStoreInitiated()
        {
            var client = new Klarna(string.Empty, string.Empty, KlarnaEnvironment.TestingNorthAmerica);

            Assert.NotNull(client.OrderManagement);
        }
コード例 #31
0
        public void Client_CheckoutStoreInitiated()
        {
            var client = new Klarna(string.Empty, string.Empty, KlarnaEnvironment.TestingNorthAmerica);

            Assert.NotNull(client.Checkout);
        }