예제 #1
0
        public void UpdateOrderForExistingOrder()
        {
            //arrange
            InvoiceReservationRequest request = new InvoiceReservationRequest
            {
                Terminal               = _testKlarnaDKTerminal,
                ShopOrderId            = "invoice-" + Guid.NewGuid().ToString(),
                Amount                 = Amount.Get(42.00, Currency.DKK),
                CustomerInfo           = InitializeCustomerInfoTestData(),
                OrderLines             = InitializeOrderlinesTestData(),
                PersonalIdentifyNumber = "0801363945",
                BirthDate              = "0801363945"
            };
            InvoiceReservationResult reservationResult = _api.CreateInvoiceReservation(request);

            CaptureRequest captureRequest = new CaptureRequest
            {
                Amount    = Amount.Get(42.00, Currency.DKK),
                PaymentId = reservationResult.Payment.PaymentId
            };
            CaptureResult captureResult = _api.Capture(captureRequest);

            List <PaymentOrderLine> orderlinesToUpdate = new List <PaymentOrderLine>();

            PaymentOrderLine orderlineToUpdate = InitializeOrderlinesTestData()[0];

            orderlineToUpdate.Quantity = 0 - orderlineToUpdate.Quantity;
            orderlinesToUpdate.Add(orderlineToUpdate);

            PaymentOrderLine newOrderLine = new PaymentOrderLine
            {
                Description = "New Item 1",
                ItemId      = "3",
                Quantity    = 2,
                GoodsType   = GoodsType.Item,
                UnitPrice   = 11.0
            };

            orderlinesToUpdate.Add(newOrderLine);

            //orderlinesToUpdate.ForEach(p => p.Quantity = 0 - p.Quantity);
            UpdateOrderRequest updateOrderRequest = new UpdateOrderRequest(captureResult.Payment.PaymentId, orderlinesToUpdate);

            //act
            UpdateOrderResult updateOrderResult = _api.UpdateOrder(updateOrderRequest);

            //assert
            Assert.AreEqual(updateOrderResult.Result, Result.Success);
        }
예제 #2
0
        [Test]         // Not really a unit test, just a Klarna calling example
        public static void Main()
        {
            String paymentId = "35";             // PUT A PAYMENT ID FROM A PREVIOUSLY CREATED ORDER HERE

            CaptureResult captureResult = _api.Capture(new CaptureRequest {
                PaymentId = paymentId
            });

            Assert.AreEqual(Result.Success, captureResult.Result);

            List <PaymentOrderLine> orderLines = new List <PaymentOrderLine> {
                new PaymentOrderLine {
                    Description = "description 1",
                    ItemId      = "id 01",
                    Quantity    = -1,
                    UnitPrice   = 1.1,
                    GoodsType   = GoodsType.Item
                },
                new PaymentOrderLine {
                    Description = "new item",
                    ItemId      = "new id",
                    Quantity    = 1,
                    UnitPrice   = 1.1,
                    GoodsType   = GoodsType.Item
                }
            };

            UpdateOrderRequest req = new UpdateOrderRequest(paymentId, orderLines);

            UpdateOrderResult result = _api.UpdateOrder(req);

            Assert.AreEqual(Result.Success, result.Result);
        }