public function testPayPagePaymentWithSetPaymentMethodInvoice()
 {
     $config = SveaConfig::getDefaultConfig();
     $rowFactory = new \TestUtil();
     $form = \WebPay::createOrder($config)->addOrderRow(\TestUtil::createOrderRow())->run($rowFactory->buildShippingFee())->addDiscount(\WebPayItem::relativeDiscount()->setDiscountId("1")->setDiscountPercent(50)->setUnit("st")->setName('Relative')->setDescription("RelativeDiscount"))->addCustomerDetails(\WebPayItem::companyCustomer()->setNationalIdNumber(4608142222))->setCountryCode("SE")->setClientOrderNumber("33")->setOrderDate("2012-12-12")->setCurrency("SEK")->usePaymentMethod(\PaymentMethod::INVOICE)->setReturnUrl("http://myurl.se")->getPaymentForm();
     $xmlMessage = new \SimpleXMLElement($form->xmlMessage);
     $this->assertEquals(SystemPaymentMethod::INVOICE_SE, $xmlMessage->paymentmethod[0]);
     $this->assertEquals("TRUE", $xmlMessage->iscompany);
     $this->assertEquals("4608142222", $xmlMessage->customer->ssn);
 }
 public function testBuildCardPayment()
 {
     $rowFactory = new \TestUtil();
     $config = SveaConfig::getDefaultConfig();
     $form = \WebPay::createOrder($config)->addOrderRow(\TestUtil::createOrderRow())->run($rowFactory->buildShippingFee())->addDiscount(\WebPayItem::relativeDiscount()->setDiscountId("1")->setDiscountPercent(50)->setUnit("st")->setName('Relative')->setDescription("RelativeDiscount"))->addCustomerDetails(\WebPayItem::companyCustomer()->setNationalIdNumber("2345234"))->setCountryCode("SE")->setClientOrderNumber("33")->setOrderDate("2012-12-12")->setCurrency("SEK")->usePayPageCardOnly()->setReturnUrl("http://myurl.se")->getPaymentForm();
     $xmlMessage = new \SimpleXMLElement($form->xmlMessage);
     $payment = base64_decode($form->xmlMessageBase64);
     $payment_decoded = new \SimpleXMLElement($payment);
     //test values are as expected avter transforming xml to php object
     $this->assertEquals('SEK', $xmlMessage->currency);
     $this->assertEquals('18750', $xmlMessage->amount);
     $this->assertEquals('3750', $xmlMessage->vat);
     $this->assertEquals('12500', $xmlMessage->orderrows->row[0]->amount);
     $this->assertEquals('6250', $xmlMessage->orderrows->row[1]->amount);
     $this->assertEquals('-12500', $xmlMessage->orderrows->row[2]->amount);
 }
Beispiel #3
0
 /**
  * Add Customer details to Svea CreateOrder object
  *
  * @param type $order
  * @param type $additionalInfo
  * @return type Svea CreateOrder object
  */
 public function getSveaPaymentObject($order, $additionalInfo = null)
 {
     $svea = parent::getSveaPaymentObject($order, $additionalInfo);
     //Add more customer info
     $countryCode = $order->getBillingAddress()->getCountryId();
     $company = $additionalInfo['svea_customerType'];
     $address = $order->getBillingAddress()->getStreetFull();
     $addressArray = \Svea\Helper::splitStreetAddress($address);
     if ($company == "1") {
         $item = WebPayItem::companyCustomer();
         $item = $item->setEmail($order->getBillingAddress()->getEmail())->setCompanyName($order->getBillingAddress()->getCompany())->setStreetAddress($addressArray[1], $addressArray[2])->setZipCode($order->getBillingAddress()->getPostcode())->setLocality($order->getBillingAddress()->getCity())->setIpAddress(Mage::helper('core/http')->getRemoteAddr(false))->setPhoneNumber($order->getBillingAddress()->getTelephone());
         if ($countryCode == "DE" || $countryCode == "NL") {
             $item = $item->setVatNumber($additionalInfo['svea_vatNo']);
         } else {
             $item = $item->setNationalIdNumber($additionalInfo['svea_ssn']);
             $item = $item->setAddressSelector($additionalInfo['svea_addressSelector']);
         }
     } else {
         $item = WebPayItem::individualCustomer();
         // Not all countries has svea_ssn input
         if (array_key_exists('svea_ssn', $additionalInfo)) {
             $item = $item->setNationalIdNumber($additionalInfo['svea_ssn']);
         }
         $item = $item->setEmail($order->getBillingAddress()->getEmail())->setName($order->getBillingAddress()->getFirstname(), $order->getBillingAddress()->getLastname())->setStreetAddress($addressArray[1], $addressArray[2])->setZipCode($order->getBillingAddress()->getPostcode())->setLocality($order->getBillingAddress()->getCity())->setIpAddress(Mage::helper('core/http')->getRemoteAddr(false))->setPhoneNumber($order->getBillingAddress()->getTelephone());
         if ($countryCode == "DE" || $countryCode == "NL") {
             $validBirthday = true;
             foreach (array('svea_birthYear', 'svea_birthMonth', 'svea_birthDay') as $key) {
                 if (!array_key_exists($key, $additionalInfo) || trim($additionalInfo[$key]) === "") {
                     $validBirthday = false;
                 }
             }
             if ($validBirthday) {
                 $item = $item->setBirthDate($additionalInfo['svea_birthYear'], $additionalInfo['svea_birthMonth'], $additionalInfo['svea_birthDay']);
             }
         }
         if ($countryCode == "NL") {
             if (array_key_exists('svea_initials', $additionalInfo)) {
                 $item = $item->setInitials($additionalInfo['svea_initials']);
             }
         }
     }
     // Set public key on the object if publicKey is set in additionalInfo
     if (array_key_exists('svea_publicKey', $additionalInfo)) {
         $publicKey = $additionalInfo['svea_publicKey'];
         if ($publicKey !== '') {
             $item = $item->setPublicKey($publicKey);
             // $item = $item->setAddressSelector('');
         }
     }
     $svea = $svea->addCustomerDetails($item);
     return $svea;
 }
 public function testInvoiceRequestObjectWithAuth()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $rowFactory = new TestUtil();
     $request = WebPay::createOrder($config)->addOrderRow(TestUtil::createOrderRow())->run($rowFactory->buildShippingFee())->addCustomerDetails(WebPayItem::companyCustomer()->setNationalIdNumber(194605092222)->setAddressSelector("ad33"))->setCountryCode("SE")->setCustomerReference("33")->setClientOrderNumber("nr26")->setOrderDate("2012-12-12")->setCurrency("SEK")->useInvoicePayment()->prepareRequest();
     $this->assertEquals('sverigetest', $request->request->Auth->Username);
     $this->assertEquals('sverigetest', $request->request->Auth->Password);
     $this->assertEquals(79021, $request->request->Auth->ClientNumber);
 }
 public function test_add_publickey_for_private_customer_full_request()
 {
     $config = \Svea\SveaConfig::getTestConfig();
     $order = WebPay::createOrder($config)->addCustomerDetails(WebPayItem::companyCustomer()->setCompanyName('mycomp')->setNationalIdNumber('164701161111')->setPublicKey('ac0f2573b58ff523'))->setCountryCode('SE')->addOrderRow(WebPayItem::orderRow()->setAmountIncVat(125.0)->setVatPercent(25)->setQuantity(1))->setOrderDate(date('c'))->useInvoicePayment()->prepareRequest();
     $this->assertEquals('ac0f2573b58ff523', $order->request->CreateOrderInformation->CustomerIdentity->PublicKey);
 }
 /**
  * @expectedException Svea\ValidationException
  * @expectedExceptionMessage -missing value : OrgNumber is required for company customers when countrycode is SE, NO, DK or FI. Use function setNationalIdNumber().
  */
 public function testFailOnMissingOrgNumberForCompanyOrderSe()
 {
     $config = SveaConfig::getDefaultConfig();
     $builder = \WebPay::createOrder($config);
     $order = $builder->setCountryCode("SE")->setOrderDate("Mon, 15 Aug 05 15:52:01 +0000")->addCustomerDetails(\WebPayItem::companyCustomer()->setCompanyName("Mycompany"))->useInvoicePayment();
     $order->prepareRequest();
 }
 public function testInvoiceCompanySE()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $request = WebPay::createOrder($config)->addOrderRow(TestUtil::createOrderRow())->addCustomerDetails(WebPayItem::companyCustomer()->setNationalIdNumber(4608142222))->setCountryCode("SE")->setOrderDate("2012-12-12")->setCurrency("SEK")->useInvoicePayment()->doRequest();
     $this->assertEquals(true, $request->accepted);
 }
 public function testBuildOrderWithCompanyCustomerDE()
 {
     $config = SveaConfig::getDefaultConfig();
     $request = \WebPay::createOrder($config);
     $request = $request->addOrderRow(\TestUtil::createOrderRow())->addCustomerDetails(\WebPayItem::companyCustomer()->setVatNumber("SE666666")->setCompanyName("MyCompany")->setEmail("*****@*****.**")->setPhoneNumber(999999)->setIpAddress("123.123.123")->setStreetAddress("Gatan", 23)->setCoAddress("c/o Eriksson")->setZipCode(9999)->setLocality("Stan"));
     $request = $request->setCountryCode("DE")->setCustomerReference("33")->setOrderDate("2012-12-12")->setCurrency("EUR")->useInvoicePayment()->prepareRequest();
     $this->assertEquals("SE666666", $request->request->CreateOrderInformation->CustomerIdentity->CompanyIdentity->CompanyVatNumber);
     $this->assertEquals("Company", $request->request->CreateOrderInformation->CustomerIdentity->CustomerType);
     $this->assertEquals("MyCompany", $request->request->CreateOrderInformation->CustomerIdentity->FullName);
 }
Beispiel #9
0
 public static function companyCustomer()
 {
     return WebPayItem::companyCustomer();
 }
 public function testBuildOrderWithCompanyDetails()
 {
     $config = SveaConfig::getDefaultConfig();
     $sveaRequest = \WebPay::createOrder($config)->addCustomerDetails(\WebPayItem::companyCustomer()->setNationalIdNumber("2345234")->setCompanyName("TestCompagniet"));
     $this->assertEquals("2345234", $sveaRequest->customerIdentity->orgNumber);
     $this->assertEquals("TestCompagniet", $sveaRequest->customerIdentity->companyName);
 }