コード例 #1
0
        public void TestBuildCardPaymentDe()
        {
            PaymentForm form = _order.AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                               .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                               .AddFee(TestingTool.CreateExVatBasedShippingFee())
                               .AddDiscount(TestingTool.CreateRelativeDiscount())
                               .SetCountryCode(CountryCode.DE)
                               .SetOrderDate(TestingTool.DefaultTestDate)
                               .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .UsePayPageCardOnly()
                               .SetReturnUrl("http://myurl.se")
                               .GetPaymentForm();

            string xml = form.GetXmlMessage();

            const string expectedAmount = "18750";
            const string expectedVat    = "3750";

            string amount = xml.Substring(xml.IndexOf("<amount>", System.StringComparison.InvariantCulture) + 8,
                                          expectedAmount.Length);
            string vat = xml.Substring(xml.IndexOf("<vat>", System.StringComparison.InvariantCulture) + 5,
                                       expectedVat.Length);

            Assert.That(amount, Is.EqualTo(expectedAmount));
            Assert.That(vat, Is.EqualTo(expectedVat));
        }
コード例 #2
0
        void MakeCardPayment()//OrderRowBuilder orderRowBuilder, CountryCode countryCode = CountryCode.SE, string clientOrderNumber = "33")
        {
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                               .AddFee(TestingTool.CreateExVatBasedShippingFee())
                               .AddFee(TestingTool.CreateExVatBasedInvoiceFee())
                               .AddDiscount(TestingTool.CreateRelativeDiscount())
                               .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                               .SetCountryCode(TestingTool.DefaultTestCountryCode)
                               .SetOrderDate(TestingTool.DefaultTestDate)
                               .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .UsePayPageCardOnly()
                               .SetReturnUrl("http://myurl.se")
                               .GetPaymentForm();

            //Card payment

            /*PaymentForm form = WebpayConnection.CreateOrder()
             *      .AddOrderRow(orderRowBuilder) //required
             *      .SetCountryCode(countryCode)  // required
             *      .SetClientOrderNumber(clientOrderNumber)
             *      .SetOrderDate(DateTime.Now)
             *      .UsePaymentMethod(PaymentMethod.SVEACARDPAY)
             *      .SetReturnUrl("http://myurl.se") //Required
             *      .SetCallbackUrl("http://myurl.se")
             *      .SetCancelUrl("http://myurl.se")
             *      .GetPaymentForm();*/
        }
コード例 #3
0
 internal static Uri PrepareRegularPayment(PaymentMethod paymentMethod, string createCustomerRefNo)
 {
     return(WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
            .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
            .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
            .SetCountryCode(TestingTool.DefaultTestCountryCode)
            .SetClientOrderNumber(createCustomerRefNo)
            .SetCurrency(TestingTool.DefaultTestCurrency)
            .UsePaymentMethod(paymentMethod)
            .___SetSimulatorCode_ForTestingOnly("0")
            .SetReturnUrl(
                "https://test.sveaekonomi.se/webpay/public/static/testlandingpage.html")
            .PreparePayment("127.0.0.1"));
 }
コード例 #4
0
        public void TestFailOnNullClientOrderNumber()
        {
            const string expectedMessage = "MISSING VALUE - CountryCode is required. Use SetCountryCode(...).\n" +
                                           "MISSING VALUE - ClientOrderNumber is required. Use SetClientOrderNumber(...).\n" +
                                           "MISSING VALUE - Currency is required. Use SetCurrency(...).\n" +
                                           "MISSING VALUE - OrderRows are required. Use AddOrderRow(Item.OrderRow) to get orderrow setters.\n";

            CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                       .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                                       .SetValidator(new VoidValidator())
                                       .Build();

            Assert.That(_orderValidator.Validate(order), Is.EqualTo(expectedMessage));
        }
コード例 #5
0
 private static Uri PrepareRecurPayment(PaymentMethod paymentMethod, SubscriptionType subscriptionType)
 {
     return(WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
            .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
            .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
            .SetCountryCode(TestingTool.DefaultTestCountryCode)
            .SetClientOrderNumber("1" + Guid.NewGuid().ToString().Replace("-", ""))
            .SetCurrency(TestingTool.DefaultTestCurrency)
            .UsePaymentMethod(paymentMethod)
            .SetSubscriptionType(subscriptionType)
            .___SetSimulatorCode_ForTestingOnly("0")
            .SetReturnUrl(
                "https://test.sveaekonomi.se/webpay/public/static/testlandingpage.html")
            .PreparePayment("127.0.0.1"));
 }
コード例 #6
0
        public void TestPreparedPaymentRequest()
        {
            Uri uri = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                      .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                      .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                      .SetCountryCode(TestingTool.DefaultTestCountryCode)
                      .SetClientOrderNumber(Guid.NewGuid().ToString().Replace("-", ""))
                      .SetCurrency(TestingTool.DefaultTestCurrency)
                      .UsePayPageCardOnly()
                      .SetReturnUrl(
                "https://webpaypaymentgatewaystage.svea.com/webpay/admin/merchantresponsetest.xhtml")
                      .PreparePayment("127.0.0.1");

            Assert.That(uri.AbsoluteUri, Does.Match(".*\\/preparedpayment\\/[0-9]+"));
        }
コード例 #7
0
        public void TestFailOnMissingOrderDate()
        {
            const string expectedMessage =
                "MISSING VALUE - OrderDate is required. Use SetOrderDate().\n";

            CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                       .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                       .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                       .AddOrderRow(TestingTool.CreateMiniOrderRow())
                                       .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                                       .SetOrderDate(new DateTime())
                                       .SetValidator(new VoidValidator());

            Assert.That(_orderValidator.Validate(order), Is.EqualTo(expectedMessage));
        }
コード例 #8
0
        public void TestValidateFailOrderIsNull()
        {
            const string expectedMessage = "MISSING VALUE - CountryCode is required. Use SetCountryCode(...).\n" +
                                           "MISSING VALUE - ClientOrderNumber is required (has an empty value). Use SetClientOrderNumber(...).\n" +
                                           "MISSING VALUES - AmountExVat, Quantity and VatPercent are required for Orderrow. Use SetAmountExVat(), SetQuantity() and SetVatPercent().\n";
            CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                       .AddOrderRow(null)
                                       .SetCurrency(TestingTool.DefaultTestCurrency)
                                       .SetClientOrderNumber("")
                                       .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                                       .SetValidator(new VoidValidator())
                                       .Build();

            _orderValidator = new HostedOrderValidator();
            Assert.That(_orderValidator.Validate(order), Is.EqualTo(expectedMessage));
        }
コード例 #9
0
        public void TestValidateDeCustomerIdentity()
        {
            CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                       .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                       .SetCountryCode(CountryCode.DE)
                                       .SetCurrency(Currency.EUR)
                                       .AddOrderRow(Item.OrderRow()
                                                    .SetAmountExVat(5.0M)
                                                    .SetVatPercent(25)
                                                    .SetQuantity(1))
                                       .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer());

            _orderValidator = new HostedOrderValidator();

            Assert.That(_orderValidator.Validate(order), Is.Empty);
        }
コード例 #10
0
        public void TestInvoiceRequestObjectForCustomerIdentityCompanyFromSe()
        {
            CreateOrderEuRequest request = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                           .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("1"))
                                           .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                                           .AddOrderRow(TestingTool.CreateExVatBasedOrderRow("2"))
                                           .SetCountryCode(TestingTool.DefaultTestCountryCode)
                                           .SetOrderDate(TestingTool.DefaultTestDate)
                                           .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                                           .SetCurrency(TestingTool.DefaultTestCurrency)
                                           .UseInvoicePayment()
                                           .PrepareRequest();

            Assert.That(request.CreateOrderInformation.CustomerIdentity.NationalIdNumber, Is.EqualTo("2345234"));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.CountryCode, Is.EqualTo(CountryCode.SE.ToString().ToUpper()));
            Assert.That(request.CreateOrderInformation.CustomerIdentity.CustomerType, Is.EqualTo(CustomerType.Company));
        }
コード例 #11
0
        public void TestDoCardPaymentRequest()
        {
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                               .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                               .SetCountryCode(TestingTool.DefaultTestCountryCode)
                               .SetClientOrderNumber(Guid.NewGuid().ToString().Replace("-", ""))
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .UsePayPageCardOnly()
                               .SetReturnUrl(
                "https://webpaypaymentgatewaystage.svea.com/webpay/admin/merchantresponsetest.xhtml")
                               .GetPaymentForm();

            var postResponse = PostRequest(form);

            Assert.That(postResponse.Item1, Is.EqualTo("OK"));
        }
コード例 #12
0
        public void TestDoCardPaymentRequest()
        {
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                               .AddFee(TestingTool.CreateExVatBasedShippingFee())
                               .AddFee(TestingTool.CreateExVatBasedInvoiceFee())
                               .AddDiscount(TestingTool.CreateRelativeDiscount())
                               .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                               .SetCountryCode(TestingTool.DefaultTestCountryCode)
                               .SetOrderDate(TestingTool.DefaultTestDate)
                               .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .UsePayPageCardOnly()
                               .SetReturnUrl("http://myurl.se")
                               .GetPaymentForm();

            Assert.That(form, Is.Not.Null);
        }
コード例 #13
0
        public void TestFailAmountExVatAndVatPercentIsMissing()
        {
            const string expectedMessage = "MISSING VALUE - CountryCode is required. Use SetCountryCode(...).\n" +
                                           "MISSING VALUE - ClientOrderNumber is required (has an empty value). Use SetClientOrderNumber(...).\n" +
                                           "MISSING VALUE - At least one of the values must be set in combination with AmountIncVat: AmountExVat or VatPercent for Orderrow. Use one of: SetAmountExVat() or SetVatPercent().\n";
            CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                                       .AddOrderRow(Item.OrderRow()
                                                    .SetQuantity(1)
                                                    .SetAmountIncVat(125))
                                       .SetCurrency(TestingTool.DefaultTestCurrency)
                                       .SetClientOrderNumber("")
                                       .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                                       .SetValidator(new VoidValidator())
                                       .Build();

            _orderValidator = new HostedOrderValidator();
            Assert.That(_orderValidator.Validate(order), Is.EqualTo(expectedMessage));
        }
コード例 #14
0
        public void TestDoNordeaSePaymentRequest()
        {
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                               .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                               .SetCountryCode(TestingTool.DefaultTestCountryCode)
                               .SetClientOrderNumber(Guid.NewGuid().ToString().Replace("-", ""))
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .UsePaymentMethod(PaymentMethod.NORDEASE)
                               .SetReturnUrl(
                "https://test.sveaekonomi.se/webpay/admin/merchantresponsetest.xhtml")
                               .GetPaymentForm();

            var postResponse = PostRequest(form);

            Assert.That(postResponse.Item1, Is.EqualTo("OK"));
            Assert.That(postResponse.Item2.StartsWith(ExpectedResponseStart));
        }
コード例 #15
0
        public void TestBuildDirectBankPaymentNotSe()
        {
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                               .AddFee(TestingTool.CreateExVatBasedShippingFee())
                               .AddFee(TestingTool.CreateExVatBasedInvoiceFee())
                               .AddDiscount(TestingTool.CreateRelativeDiscount())
                               .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                               .SetCountryCode(CountryCode.DE)
                               .SetOrderDate(TestingTool.DefaultTestDate)
                               .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .UsePayPageDirectBankOnly()
                               .SetReturnUrl("http://myurl.se")
                               .GetPaymentForm();

            string base64Payment = form.GetXmlMessageBase64();
            string html          = Base64Util.DecodeBase64String(base64Payment);

            Assert.That(html.Contains("<amount>18750</amount>"), Is.True);
        }
コード例 #16
0
        public void TestSetAuthorization()
        {
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                               .AddFee(TestingTool.CreateExVatBasedShippingFee())
                               .AddFee(TestingTool.CreateExVatBasedInvoiceFee())
                               .AddDiscount(TestingTool.CreateRelativeDiscount())
                               .AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer())
                               .SetCountryCode(TestingTool.DefaultTestCountryCode)
                               .SetOrderDate(TestingTool.DefaultTestDate)
                               .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .UsePayPageCardOnly()
                               .SetReturnUrl("http://myurl.se")
                               .GetPaymentForm();

            const string expectedMerchantId = "1130";
            const string expectedSecretWord =
                "8a9cece566e808da63c6f07ff415ff9e127909d000d259aba24daa2fed6d9e3f8b0b62e8ad1fa91c7d7cd6fc3352deaae66cdb533123edf127ad7d1f4c77e7a3";

            Assert.That(form.GetMerchantId(), Is.EqualTo(expectedMerchantId));
            Assert.That(form.GetSecretWord(), Is.EqualTo(expectedSecretWord));
        }
コード例 #17
0
 private CreateOrderBuilder CreateCompanyDetails(CreateOrderBuilder orderBuilder)
 {
     return(orderBuilder.AddCustomerDetails(TestingTool.CreateMiniCompanyCustomer()));
 }