public void TestPayPagePaymentWithSetPaymentMethodSveaCardPayPF()
        {
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                               .AddDiscount(TestingTool.CreateRelativeDiscount())
                               .AddCustomerDetails(Item.IndividualCustomer()
                                                   .SetNationalIdNumber(TestingTool.DefaultTestIndividualNationalIdNumber))
                               .SetCountryCode(TestingTool.DefaultTestCountryCode)
                               .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                               .SetOrderDate(TestingTool.DefaultTestDate)
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber)
                               .UsePaymentMethod(PaymentMethod.SVEACARDPAY_PF)
                               .SetReturnUrl("http://myurl.se")
                               .GetPaymentForm();


            string       xml         = form.GetXmlMessage();
            const string expectedXml =
                "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                "<!--Message generated by Integration package C#--><payment><paymentmethod>SVEACARDPAY_PF</paymentmethod><customerrefno>33</customerrefno><currency>SEK</currency><amount>12500</amount><vat>2500</vat><lang>en</lang><returnurl>http://myurl.se</returnurl><iscompany>false</iscompany><customer><unknowncustomer>true</unknowncustomer><country>SE</country></customer><orderrows><row><sku>1</sku><name>Prod</name><description>Specification</description><amount>12500</amount><vat>2500</vat><quantity>2</quantity><unit>st</unit></row><row><sku>1</sku><name>Relative</name><description>RelativeDiscount</description><amount>-12500</amount><vat>-2500</vat><quantity>1</quantity><unit>st</unit></row></orderrows><excludepaymentMethods /><addinvoicefee>false</addinvoicefee></payment>";

            Assert.That(xml, Is.EqualTo(expectedXml));

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

            Assert.That(html.Contains("<paymentmethod>SVEACARDPAY_PF</paymentmethod>"), Is.True);
        }
Beispiel #2
0
        /*
         * <currency>SEK</currency><amount>500</amount><vat>100</vat><customerrefno>test_1429280602870</customerrefno><returnurl>https://dev.sveaekonomi.se/webpay-admin/admin/merchantresponsetest.xhtml</returnurl><paymentmethod>DBNORDEASE</paymentmethod><simulatorcode>0</simulatorcode>
         */
        private static Tuple <string, string> PostRequest(PaymentForm form)
        {
            CreateOrderBuilder order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig());

            form.SetMacSha512(
                HashUtil.CreateHash(form.GetXmlMessageBase64() +
                                    order.GetConfig().GetSecretWord(PaymentType.HOSTED, order.GetCountryCode())));

            string data = "mac=" + HttpUtility.UrlEncode(form.GetMacSha512()) +
                          "&message=" + HttpUtility.UrlEncode(form.GetXmlMessageBase64()) +
                          "&merchantid=" + HttpUtility.UrlEncode(form.GetMerchantId());

            byte[] formData = Encoding.UTF8.GetBytes(data);

            var request = WebRequest.Create(order.GetConfig().GetEndPoint(PaymentType.HOSTED)) as HttpWebRequest;

            request.Method        = "POST";
            request.ContentType   = "application/x-www-form-urlencoded";
            request.ContentLength = formData.Length;

            using (Stream post = request.GetRequestStream())
            {
                post.Write(formData, 0, formData.Length);
            }

            string result;
            string statusCode;

            using (var response = request.GetResponse() as HttpWebResponse)
            {
                using (var reader = new StreamReader(response.GetResponseStream()))
                {
                    result = reader.ReadToEnd();
                }

                statusCode = response.StatusCode.ToString();
            }

            return(new Tuple <string, string>(statusCode, result));
        }
Beispiel #3
0
        public void TestPayPagePaymentWithSetPaymentMethodNl()
        {
            PaymentForm form = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig())
                               .AddOrderRow(TestingTool.CreateExVatBasedOrderRow())
                               .AddDiscount(TestingTool.CreateRelativeDiscount())
                               .AddCustomerDetails(Item.IndividualCustomer()
                                                   .SetInitials("SB")
                                                   .SetBirthDate("19460509")
                                                   .SetName("Sneider", "Boasman")
                                                   .SetStreetAddress("Gate", "42")
                                                   .SetLocality("BARENDRECHT")
                                                   .SetZipCode("1102 HG"))
                               .SetCountryCode(CountryCode.NL)
                               .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber)
                               .SetCustomerReference(TestingTool.DefaultTestCustomerReferenceNumber)
                               .SetOrderDate(TestingTool.DefaultTestDate)
                               .SetCurrency(TestingTool.DefaultTestCurrency)
                               .UsePaymentMethod(PaymentMethod.INVOICE)
                               .SetReturnUrl("http://myurl.se")
                               .GetPaymentForm();


            string       xml         = form.GetXmlMessage();
            const string expectedXml =
                "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +
                "<!--Message generated by Integration package C#-->" +
                "<payment><paymentmethod>INVOICE</paymentmethod><customerrefno>33</customerrefno>" +
                "<currency>SEK</currency><amount>12500</amount><vat>2500</vat>" +
                "<lang>en</lang><returnurl>http://myurl.se</returnurl><iscompany>false</iscompany>" +
                "<customer><ssn>19460509</ssn><firstname>Sneider</firstname><lastname>Boasman</lastname>" +
                "<initials>SB</initials><address>Gate</address><housenumber>42</housenumber>" +
                "<zip>1102 HG</zip><city>BARENDRECHT</city><country>NL</country></customer>" +
                "<orderrows><row><sku>1</sku><name>Prod</name><description>Specification</description>" +
                "<amount>12500</amount><vat>2500</vat><quantity>2</quantity><unit>st</unit></row>" +
                "<row><sku>1</sku><name>Relative</name><description>RelativeDiscount</description>" +
                "<amount>-12500</amount><vat>-2500</vat><quantity>1</quantity><unit>st</unit></row>" +
                "</orderrows><excludepaymentMethods /><addinvoicefee>false</addinvoicefee></payment>";

            Assert.That(xml, Is.EqualTo(expectedXml));

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

            Assert.That(html.Contains("<paymentmethod>INVOICE</paymentmethod>"), Is.True);
        }
        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);
        }