public void TestCastAttachmentToExtraMerchantDataIncorrectBody()
        {
            Attachment attachment = new Attachment
            {
                ContentType = "application/vnd.klarna.internal.emd-v2+json",
                Body        = "{\"payment_history_full\":[{\"date_of_first_paid_purchase\":123}]}"
            };

            Assert.Throws <JsonSerializationException>(
                delegate { ExtraMerchantData emd = attachment; });
        }
        public void TestCastAttachmentToExtraMerchantData()
        {
            Attachment attachment = new Attachment
            {
                ContentType = "application/vnd.klarna.internal.emd-v2+json",
                Body        = JSON
            };

            ExtraMerchantData emd = attachment;

            Assert.AreEqual(TICKS, emd.Body.PaymentHistoryFull[0].DateOfFirstPaidPurchase.Ticks);
        }
        public void TestCastAttachmentToExtraMerchantDataIncorrectContentType(string contentType)
        {
            Attachment attachment = new Attachment
            {
                ContentType = contentType,
                Body        = JSON
            };

            InvalidCastException e = Assert.Throws <InvalidCastException>(
                delegate { ExtraMerchantData emd = attachment; });

            Assert.AreEqual("Incorrect Content-Type", e.Message);
        }
        public void TestCastExtraMerchantDataToAttachment()
        {
            ExtraMerchantData emd = new ExtraMerchantData
            {
                Body = new ExtraMerchantDataBody
                {
                    PaymentHistoryFull = new List <PaymentHistoryFull>
                    {
                        new PaymentHistoryFull
                        {
                            DateOfFirstPaidPurchase = new DateTime(TICKS)
                        }
                    }
                }
            };

            Attachment attachment = emd;

            Assert.AreEqual(emd.ContentType, attachment.ContentType);
            Assert.AreEqual(JSON, attachment.Body);
        }
Ejemplo n.º 5
0
            /// <summary>
            /// Run the example code.
            /// </summary>
            public static void Main()
            {
                const string MerchantId   = "0";
                const string SharedSecret = "sharedSecret";

                IConnector connector = ConnectorFactory.Create(MerchantId, SharedSecret, Client.EuTestBaseUrl);

                Client         client   = new Client(connector);
                ICheckoutOrder checkout = client.NewCheckoutOrder();

                OrderLine orderLine = new OrderLine
                {
                    Type           = OrderLineType.Physical,
                    Reference      = "123050",
                    Name           = "Tomatoes",
                    Quantity       = 10,
                    QuantityUnit   = "kg",
                    UnitPrice      = 600,
                    TaxRate        = 2500,
                    TotalAmount    = 6000,
                    TotalTaxAmount = 1200
                };

                OrderLine orderLine2 = new OrderLine
                {
                    Type                = OrderLineType.Physical,
                    Reference           = "543670",
                    Name                = "Bananas",
                    Quantity            = 1,
                    QuantityUnit        = "bag",
                    UnitPrice           = 5000,
                    TaxRate             = 2500,
                    TotalAmount         = 4000,
                    TotalDiscountAmount = 1000,
                    TotalTaxAmount      = 800
                };

                MerchantUrls merchantUrls = new MerchantUrls
                {
                    Terms        = new Uri("http://www.merchant.com/toc"),
                    Checkout     = new Uri("http://www.merchant.com/checkout?klarna_order_id={checkout.order.id}"),
                    Confirmation = new Uri("http://www.merchant.com/thank-you?klarna_order_id={checkout.order.id}"),
                    Push         = new Uri("http://www.merchant.com/create_order?klarna_order_id={checkout.order.id}")
                };

                List <PaymentHistoryFull> purchaseHistoryFull = new List <PaymentHistoryFull>
                {
                    new PaymentHistoryFull
                    {
                        UniqueAccountIdentifier  = "Test Testperson",
                        PaymentOption            = "card",
                        NumberPaidPurchases      = 1,
                        TotalAmountPaidPurchases = 10000,
                        DateOfLastPaidPurchase   = DateTime.Now,
                        DateOfFirstPaidPurchase  = DateTime.Now
                    }
                };

                ExtraMerchantData extraMerchantData = new ExtraMerchantData
                {
                    Body = new ExtraMerchantDataBody
                    {
                        PaymentHistoryFull = purchaseHistoryFull
                    }
                };

                CheckoutOrderData orderData = new CheckoutOrderData()
                {
                    PurchaseCountry  = "gb",
                    PurchaseCurrency = "gbp",
                    Locale           = "en-gb",
                    OrderAmount      = 10000,
                    OrderTaxAmount   = 2000,
                    OrderLines       = new List <OrderLine> {
                        orderLine, orderLine2
                    },
                    MerchantUrls = merchantUrls,
                    Attachment   = extraMerchantData
                };

                try
                {
                    checkout.Create(orderData);
                    orderData = checkout.Fetch();

                    string            orderID = orderData.OrderId;
                    ExtraMerchantData emd     = orderData.Attachment;
                }
                catch (ApiException ex)
                {
                    Console.WriteLine(ex.ErrorMessage.ErrorCode);
                    Console.WriteLine(ex.ErrorMessage.ErrorMessages);
                    Console.WriteLine(ex.ErrorMessage.CorrelationId);
                }
                catch (WebException ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }