Beispiel #1
0
        public void Orders_CreateOrder_StoreCustomVariables()
        {
            // Arrange
            var url = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateDirectIdeal("3151", orderId, "product description", 1000, "EUR",
                 new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"));

            orderRequest.Var1 = "custom 1";
            orderRequest.Var2 = "custom 2";
            orderRequest.Var3 = "custom 3";

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));

            // Act
            OrderResponse retrievedOrder = client.GetOrder(orderId);

            // Assert
            Assert.IsNotNull(retrievedOrder);
            Assert.AreEqual(orderRequest.Var1, retrievedOrder.Var1);
            Assert.AreEqual(orderRequest.Var2, retrievedOrder.Var2);
            Assert.AreEqual(orderRequest.Var3, retrievedOrder.Var3);
        }
        public void Orders_CreateFastCheckout_ShippingMethodPickup()
        {
            var url     = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey  = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client  = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateFastCheckoutOrder(orderId, "product description", 1000, "EUR",
                                                                    new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                                                                    new ShoppingCart
            {
                Items = new[]
                {
                    new ShoppingCartItem("Test Product", 10, 2, "EUR"),
                    new ShoppingCartItem("Test Product 2", 10, 2, "EUR")
                }
            },
                                                                    new CheckoutOptions()
            {
                ShippingMethods = new ShippingMethods()
                {
                    Pickup = new ShippingMethod("Pickup Shipping", 1000, "EUR")
                }
            });
            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
Beispiel #3
0
        public void Orders_CreateOrder_StoreCustomVariables()
        {
            // Arrange
            var url     = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey  = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client  = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateDirectIdeal("3151", orderId, "product description", 1000, "EUR",
                                                              new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"));

            orderRequest.Var1 = "custom 1";
            orderRequest.Var2 = "custom 2";
            orderRequest.Var3 = "custom 3";

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));

            // Act
            OrderResponse retrievedOrder = client.GetOrder(orderId);

            // Assert
            Assert.IsNotNull(retrievedOrder);
            Assert.AreEqual(orderRequest.Var1, retrievedOrder.Var1);
            Assert.AreEqual(orderRequest.Var2, retrievedOrder.Var2);
            Assert.AreEqual(orderRequest.Var3, retrievedOrder.Var3);
        }
Beispiel #4
0
        public void Orders_CreateFastCheckout_ForeignCurrency()
        {
            var url     = Settings.MultiSafePayUrl;
            var apiKey  = Settings.ApiKey;
            var client  = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateFastCheckoutOrder(orderId, "product description", 1000, "GBP",
                                                                    new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                                                                    new ShoppingCart
            {
                Items = new[]
                {
                    new ShoppingCartItem("Test Product", 10, 2, "GBP"),
                    new ShoppingCartItem("Test Product 2", 10, 2, "GBP")
                }
            },
                                                                    new CheckoutOptions()
            {
                ShippingMethods = new ShippingMethods()
                {
                    FlatRateShippingMethods = new[] { new ShippingMethod("Shipping", 1000, "GBP") }
                }
            });
            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
Beispiel #5
0
        public void Orders_CreateFastCheckout_NoShippingMethod()
        {
            var url = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateFastCheckoutOrder(orderId, "product description", 1000, "EUR",
                new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                new ShoppingCart
                {
                    Items = new[]
                    {
                        new ShoppingCartItem("Test Product", 10, 2, "EUR"),
                        new ShoppingCartItem("Test Product 2", 10, 2, "EUR")
                    }
                },
                new CheckoutOptions()
                {
                    NoShippingMethod = true
                }
                );
            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
Beispiel #6
0
        public void Orders_CreateOrder()
        {
            // Arrange
            var url     = Settings.MultiSafePayUrl;
            var apiKey  = Settings.ApiKey;
            var client  = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateRedirect(orderId, "product description", 1000, "EUR",
                                                           new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"));

            orderRequest.Customer = new Customer()
            {
                FirstName = "John",
                LastName  = "Doe",
                Address1  = "Kraanspoor 39",
                City      = "Amsterdam",
                Country   = "Netherlands",
                PostCode  = "1033SC"
            };

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
Beispiel #7
0
        public void Orders_CreateOrder()
        {
            // Arrange
            var url = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();
            
            var orderRequest = OrderRequest.CreateRedirect(orderId, "product description", 1000, "EUR",
                new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"));
            
            orderRequest.Customer = new Customer()
            {
                FirstName = "John",
                LastName = "Doe",
                Address1 = "Kraanspoor 39",
                City = "Amsterdam",
                Country = "Netherlands",
                PostCode = "1033SC"
            };

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
Beispiel #8
0
        public void Orders_PayAfterDeliveryOrderRedirect()
        {
            // Arrange
            var url     = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey  = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client  = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateRedirectPayAfterDeliveryOrder(orderId, "product description", 24200, "EUR",
                                                                                new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                                                                                GatewayInfo.PayAfterDelivery(new DateTime(1986, 08, 31), "NL39 RABO 0300 0652 64", "+31 (0)20 8500 500", "*****@*****.**", "referrer", "useragent"),
                                                                                new ShoppingCart
            {
                Items = new[]
                {
                    new ShoppingCartItem("Test Product", 200.0, 1, "EUR")
                }
            },
                                                                                new CheckoutOptions()
            {
                TaxTables = new TaxTables()
                {
                    DefaultTaxTable = new TaxTable()
                    {
                        Name  = "Default",
                        Rules = new[] { new TaxRateRule()
                                        {
                                            Rate = 0.21
                                        } },
                        ShippingTaxed = false
                    }
                }
            },
                                                                                new Customer()
            {
                FirstName   = "John",
                LastName    = "Doe",
                HouseNumber = "39",
                Address1    = "Kraanspoor",
                City        = "Amsterdam",
                Country     = "NL",
                PostCode    = "1033SC"
            }
                                                                                );

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
Beispiel #9
0
        public void Orders_CreatePayAfterDeliveryOrder()
        {
            // Arrange
            var url = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateDirectPayAfterDeliveryOrder(orderId, "product description", 24200, "EUR",
                new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                GatewayInfo.PayAfterDelivery(new DateTime(1986, 08, 31), "NL39 RABO 0300 0652 64", "+31 (0)20 8500 500", "*****@*****.**", "referrer", "useragent"),
                new ShoppingCart
                {
                    Items = new[]
                    {
                        new ShoppingCartItem("Test Product", 200.0, 1, "EUR")
                    }
                },
                new CheckoutOptions()
                {
                    TaxTables = new TaxTables()
                    {
                        DefaultTaxTable = new TaxTable()
                        {
                            Name = "Default",
                            Rules = new [] { new TaxRateRule() { Rate = 0.21 }},
                            ShippingTaxed = false
                        }
                    }
                },
                new Customer()
                    {
                        FirstName = "John",
                        LastName = "Doe",
                        HouseNumber = "39",
                        Address1 = "Kraanspoor",
                        City = "Amsterdam",
                        Country = "NL",
                        PostCode = "1033SC"
                    }
                );

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsTrue(result.PaymentUrl.StartsWith("http://example.com/success?transactionid=")); // redirect to success URL

        }
        public void Orders_CreateFastCheckoutOrder()
        {
            // Arrange
            var url     = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey  = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client  = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateFastCheckoutOrder(orderId, "product description", 1000, "EUR",
                                                                    new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                                                                    new ShoppingCart
            {
                Items = new[]
                {
                    new ShoppingCartItem("Test Product", 10, 2, "EUR"),
                    new ShoppingCartItem("Test Product 2", 10, 1, "EUR")
                }
            },
                                                                    new CheckoutOptions()
            {
                NoShippingMethod = false,
                ShippingMethods  = new ShippingMethods()
                {
                    FlatRateShippingMethods = new List <ShippingMethod>
                    {
                        new ShippingMethod("test", 1.0, "EUR"),
                        new ShippingMethod("test2", 3.0, "EUR"),
                    }
                },
                TaxTables = new TaxTables()
                {
                    DefaultTaxTable = new TaxTable()
                    {
                        Name  = "Default",
                        Rules = new [] { new TaxRateRule()
                                         {
                                             Rate = 0.21
                                         } },
                        ShippingTaxed = true
                    }
                }
            });
            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
Beispiel #11
0
        public void Orders_CreateFastCheckoutOrder()
        {
            // Arrange
            var url = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateFastCheckoutOrder(orderId, "product description", 1000, "EUR",
                new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                new ShoppingCart
                {
                    Items = new[]
                    {
                        new ShoppingCartItem("Test Product", 10, 2, "EUR"),
                        new ShoppingCartItem("Test Product 2", 10, 1, "EUR")
                    }
                },
                new CheckoutOptions()
                {
                    NoShippingMethod = false,
                    ShippingMethods = new ShippingMethods()
                    {
                        FlatRateShippingMethods = new List<ShippingMethod>
                        {
                            new ShippingMethod("test", 1.0, "EUR"),
                            new ShippingMethod("test2", 3.0, "EUR"),
                        }
                    },
                    TaxTables = new TaxTables()
                    {
                        DefaultTaxTable = new TaxTable()
                        {
                            Name = "Default",
                            Rules = new [] { new TaxRateRule() { Rate = 0.21 }},
                            ShippingTaxed = true
                        }
                    }
                });
            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
        public void Orders_CreateFastCheckoutOrder_PredefinedCustomFields()
        {
            // Arrange
            var url     = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey  = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client  = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateFastCheckoutOrder(orderId, "product description", 1000, "EUR",
                                                                    new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                                                                    new ShoppingCart
            {
                Items = new[]
                {
                    new ShoppingCartItem("Test Product", 10, 2, "EUR"),
                    new ShoppingCartItem("Test Product 2", 10, 2, "EUR")
                }
            },
                                                                    new CheckoutOptions()
            {
                NoShippingMethod = true
            });

            orderRequest.CustomFields = new []
            {
                new CustomField("acceptagreements", StandardCustomField.acceptagreements),
                new CustomField("birthday", StandardCustomField.birthday),
                new CustomField("chamberofcommerce", StandardCustomField.chamberofcommerce),
                new CustomField("comment", StandardCustomField.comment),
                new CustomField("companyname", StandardCustomField.companyname),
                new CustomField("driverslicense", StandardCustomField.driverslicense),
                new CustomField("mobilephonenumber", StandardCustomField.mobilephonenumber),
                new CustomField("newsletter", StandardCustomField.newsletter),
                new CustomField("passportnumber", StandardCustomField.passportnumber),
                new CustomField("phonenumber", StandardCustomField.phonenumber),
                new CustomField("salutation", StandardCustomField.salutation),
                new CustomField("sex", StandardCustomField.sex),
                new CustomField("vatnumber", StandardCustomField.vatnumber)
            };
            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
Beispiel #13
0
        public void Orders_CreateDirectOrder_BankTransfer()
        {
            // Arrange
            var url          = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey       = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client       = new MultiSafepayClient(apiKey, url);
            var orderId      = Guid.NewGuid().ToString();
            var orderRequest = OrderRequest.CreateDirectBankTransfer(orderId, "product description", 1000, "EUR",
                                                                     new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"));

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
        }
Beispiel #14
0
        public void Orders_CreateDirectOrder_IDEALQR()
        {
            // Arrange
            var url          = Settings.MultiSafePayUrl;
            var apiKey       = Settings.ApiKey;
            var client       = new MultiSafepayClient(apiKey, url);
            var orderId      = Guid.NewGuid().ToString();
            var orderRequest = OrderRequest.CreateDirectIdealQR(300, orderId, "product description", 1000, "EUR",
                                                                new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"));

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.QrUrl));
        }
Beispiel #15
0
        public void Orders_CreateDirectOrder_BankTransfer()
        {
            // Arrange
            var url = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();
            var orderRequest = OrderRequest.CreateDirectBankTransfer(orderId, "product description", 1000, "EUR",
                new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"));

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsTrue(String.IsNullOrEmpty(result.PaymentUrl));
        }
        public void Orders_CreateFastCheckoutOrder_SetCustomerData()
        {
            // Arrange
            var url     = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey  = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client  = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateFastCheckoutOrder(orderId, "product description", 1000, "EUR",
                                                                    new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                                                                    new ShoppingCart
            {
                Items = new[]
                {
                    new ShoppingCartItem("Test Product", 10, 2, "EUR"),
                    new ShoppingCartItem("Test Product 2", 10, 2, "EUR")
                }
            },
                                                                    new CheckoutOptions()
            {
                NoShippingMethod = true
            });

            orderRequest.Customer = new Customer()
            {
                Email       = "*****@*****.**",
                Country     = "Netherlands",
                FirstName   = "John",
                LastName    = "Doe",
                HouseNumber = "39B",
                City        = "Amsterdam",
                PostCode    = "1234",
                Address1    = "Kraanspoor"
            };

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
        public void Orders_CreateFastCheckoutOrder_CustomField()
        {
            // Arrange
            var url     = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey  = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client  = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateFastCheckoutOrder(orderId, "product description", 1000, "EUR",
                                                                    new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                                                                    new ShoppingCart
            {
                Items = new[]
                {
                    new ShoppingCartItem("Test Product", 10, 2, "EUR"),
                    new ShoppingCartItem("Test Product 2", 10, 2, "EUR")
                }
            },
                                                                    new CheckoutOptions()
            {
                NoShippingMethod = true
            });

            orderRequest.CustomFields = new []
            {
                //new CustomField("TestField", CustomFieldType.checkbox),
                new CustomField("TestField2", CustomFieldType.textbox)
                {
                    Label = "Test Field"
                },
                //new CustomField("TestField3", CustomFieldType.selectbox),
                //new CustomField("TestField4", CustomFieldType.radiolist)
            };
            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
Beispiel #18
0
        public void Orders_CreateOrder_TemporaryVariables()
        {
            // Arrange
            var url     = Settings.MultiSafePayUrl;
            var apiKey  = Settings.ApiKey;
            var client  = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateDirectIdeal("3151", orderId, "product description", 1000, "EUR",
                                                              new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"));

            orderRequest.Var1 = "custom 1";
            orderRequest.Var2 = "custom 2";
            orderRequest.Var3 = "custom 3";

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
        }
Beispiel #19
0
        public void Orders_CreateFastCheckoutOrder_SetCustomerData()
        {
            // Arrange
            var url = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateFastCheckoutOrder(orderId, "product description", 1000, "EUR",
                new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                new ShoppingCart
                {
                    Items = new[]
                    {
                        new ShoppingCartItem("Test Product", 10, 2, "EUR"),
                        new ShoppingCartItem("Test Product 2", 10, 2, "EUR")
                    }
                },
                new CheckoutOptions()
                {
                    NoShippingMethod = true
                });

            orderRequest.Customer = new Customer()
            {
                Email = "*****@*****.**",
                Country = "Netherlands",
                FirstName = "John",
                LastName = "Doe",
                HouseNumber = "39B",
                City = "Amsterdam",
                PostCode = "1234",
                Address1 = "Kraanspoor"
            };

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
        public void Orders_CreateAfterPayOrder()
        {
            // Arrange
            var url     = Settings.MultiSafePayUrl;
            var apiKey  = Settings.ApiKey;
            var client  = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateDirectAfterPayOrder(orderId, "product description", 1210, "EUR",
                                                                      new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                                                                      GatewayInfo.AfterPay(new DateTime(1970, 07, 10), "male", "+31 (0)20 8500 500", "*****@*****.**"),
                                                                      new ShoppingCart
            {
                Items = new[]
                {
                    new ShoppingCartItem("10001", "Test Product", 10.0, 1, "EUR")
                }
            },
                                                                      new CheckoutOptions()
            {
                TaxTables = new TaxTables()
                {
                    DefaultTaxTable = new TaxTable()
                    {
                        Name  = "Default",
                        Rules = new[] { new TaxRateRule()
                                        {
                                            Rate = 0.21
                                        } },
                        ShippingTaxed = false
                    }
                }
            },
                                                                      new Customer()
            {
                FirstName   = "Testperson-nl",
                LastName    = "Approved",
                HouseNumber = "1/XI",
                Address1    = "Neherkade",
                City        = "Gravenhage",
                Country     = "NL",
                PostCode    = "2521VA",
            },
                                                                      new DeliveryAddress()
            {
                FirstName   = "Testperson-nl",
                LastName    = "Approved",
                HouseNumber = "1/XI",
                Address1    = "Neherkade",
                City        = "Gravenhage",
                Country     = "NL",
                PostCode    = "2521VA",
            }
                                                                      );

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsTrue(result.PaymentUrl.StartsWith("http://example.com/success?transactionid=")); // redirect to success URL
        }
Beispiel #21
0
        public void Orders_CreateFastCheckout_AlternateCustomTaxTable()
        {
            var url     = Settings.MultiSafePayUrl;
            var apiKey  = Settings.ApiKey;
            var client  = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateFastCheckoutOrder(orderId, "product description", 1000, "EUR",
                                                                    new PaymentOptions("http://example.com/notify", "http://example.com/success",
                                                                                       "http://example.com/failed"),
                                                                    new ShoppingCart
            {
                Items = new[]
                {
                    new ShoppingCartItem("Test Product", 10, 1, "EUR")
                    {
                        TaxTableSelector = "Alternate"
                    },
                    new ShoppingCartItem("Test Product 2", 10, 1, "EUR")
                }
            },
                                                                    new CheckoutOptions()
            {
                ShippingMethods = new ShippingMethods()
                {
                    FlatRateShippingMethods = new[] { new ShippingMethod("Shipping", 1000, "EUR") }
                },
                TaxTables = new TaxTables()
                {
                    DefaultTaxTable = new TaxTable()
                    {
                        Name  = "Default",
                        Rules = new[] { new TaxRateRule()
                                        {
                                            Rate = 0.10
                                        } },
                        ShippingTaxed = true
                    },
                    AlternateTaxTables = new []
                    {
                        new TaxTable()
                        {
                            Name  = "Alternate",
                            Rules = new [] { new TaxRateRule()
                                             {
                                                 Rate = 0.05
                                             } },
                            ShippingTaxed = false
                        }
                    }
                }
            });


            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
Beispiel #22
0
        public void Orders_CreateKlarnaOrder()
        {
            // Arrange
            var url = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateDirectKlarnaOrder(orderId, "product description", 1210, "EUR",
                new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                GatewayInfo.Klarna(new DateTime(1970, 12, 12), "male", "+31 (0)20 8500 500", "*****@*****.**"),
                new ShoppingCart
                {
                    Items = new[]
                    {
                        new ShoppingCartItem("10001", "Test Product", 10.0, 1, "EUR")
                    }
                },
                new CheckoutOptions()
                {
                    TaxTables = new TaxTables()
                    {
                        DefaultTaxTable = new TaxTable()
                        {
                            Name = "Default",
                            Rules = new[] { new TaxRateRule() { Rate = 0.21 } },
                            ShippingTaxed = false
                        }
                    }
                },
                new Customer()
                    {
                        FirstName = "Testperson-nl",
                        LastName = "Approved",
                        HouseNumber = "1/XI",
                        Address1 = "Neherkade",
                        City = "Gravenhage",
                        Country = "NL",
                        PostCode = "2521VA",
                    },
               new DeliveryAddress()
                    {
                        FirstName = "Testperson-nl",
                        LastName = "Approved",
                        HouseNumber = "1/XI",
                        Address1 = "Neherkade",
                        City = "Gravenhage",
                        Country = "NL",
                        PostCode = "2521VA",
                    }
                );

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsTrue(result.PaymentUrl.StartsWith("http://example.com/success?transactionid=")); // redirect to success URL

        }
Beispiel #23
0
        public void Orders_CreateRedirectWithTemplate()
        {
            // Arrange
            var url     = Settings.MultiSafePayUrl;
            var apiKey  = Settings.ApiKey;
            var client  = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            //Template Id provided in MSP merchants panel
            var templateId = "template-id";

            var orderRequest = OrderRequest.CreateRedirectWithTemplate(orderId, "product description", 1000, "EUR",
                                                                       new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                                                                       templateId,
                                                                       new Template()
            {
                Version = "1.0",    //Required
                Header  = new TemplateHeader()
                {
                    Background = "#dedede",
                    Text       = "#333333",
                    Logo       = new TemplateHeaderObject()
                    {
                        Image = "https://via.placeholder.com/150x150"
                    }
                },
                Body = new TemplateBody()
                {
                    Text       = "#333333",
                    Background = "#cccccc",
                    Link       = new TemplateButtonObject()
                    {
                        Text = "#00acf1"
                    }
                },
                Container = new TemplateContainer()
                {
                    Text       = "#626161",
                    Label      = "#a4a3a3",
                    Background = "#ffffff"
                },
                Cart = new TemplateCart()
                {
                    Text       = "#333333",
                    Label      = "#8b8b8b",
                    Background = "#ffffff",
                    Border     = "#d7d7d7"
                },
                PaymentForm = new TemplatePaymentForm()
                {
                    Background = "#ffffff",
                    Border     = "#d7d7d7",
                    Inputs     = new TemplateInputObject()
                    {
                        Border = "#d7d7d7",
                        Label  = "#38839e"
                    }
                },
                Buttons = new TemplateButtons()
                {
                    PaymentMethod = new TemplateButtonObject()
                    {
                        Background = "#ffffff",
                        Text       = "#38839e",
                        Border     = "#d7d7d7",
                        Hover      = new TemplateButtonObjectState()
                        {
                            Background = "#cccccc"
                        }
                    },
                    Primary = new TemplateButtonObject()
                    {
                        Background = "#cc0000",
                        Text       = "#ffffff"
                    },
                    Secondary = new TemplateButtonObject()
                    {
                        Background = "#38839e",
                        Text       = "#ffffff"
                    }
                }
            });

            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }
Beispiel #24
0
        public void Orders_CreateFastCheckoutOrder_PredefinedCustomFields()
        {
            // Arrange
            var url = ConfigurationManager.AppSettings["MultiSafepayAPI"];
            var apiKey = ConfigurationManager.AppSettings["MultiSafepayAPIKey"];
            var client = new MultiSafepayClient(apiKey, url);
            var orderId = Guid.NewGuid().ToString();

            var orderRequest = OrderRequest.CreateFastCheckoutOrder(orderId, "product description", 1000, "EUR",
                new PaymentOptions("http://example.com/notify", "http://example.com/success", "http://example.com/failed"),
                new ShoppingCart
                {
                    Items = new[]
                    {
                        new ShoppingCartItem("Test Product", 10, 2, "EUR"),
                        new ShoppingCartItem("Test Product 2", 10, 2, "EUR")
                    }
                },
                new CheckoutOptions()
                {
                    NoShippingMethod = true
                });
            orderRequest.CustomFields = new []
            {
                new CustomField("acceptagreements", StandardCustomField.acceptagreements), 
                new CustomField("birthday", StandardCustomField.birthday),
                new CustomField("chamberofcommerce", StandardCustomField.chamberofcommerce),
                new CustomField("comment", StandardCustomField.comment),
                new CustomField("companyname", StandardCustomField.companyname),
                new CustomField("driverslicense", StandardCustomField.driverslicense),
                new CustomField("mobilephonenumber", StandardCustomField.mobilephonenumber),
                new CustomField("newsletter", StandardCustomField.newsletter),
                new CustomField("passportnumber", StandardCustomField.passportnumber),
                new CustomField("phonenumber", StandardCustomField.phonenumber),
                new CustomField("salutation", StandardCustomField.salutation),
                new CustomField("sex", StandardCustomField.sex),
                new CustomField("vatnumber", StandardCustomField.vatnumber)
            };
            // Act
            var result = client.CreateOrder(orderRequest);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(orderRequest.OrderId, result.OrderId);
            Assert.IsFalse(String.IsNullOrEmpty(result.PaymentUrl));
        }