public function test_creditAmount_creditPaymentPlan_amount_exceeds_orderamount()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $orderInfo = $this->get_orderInfo_sent_inc_vat(1000.0, 25, 1, TRUE);
     $credit = WebPayAdmin::creditAmount($config)->setContractNumber($orderInfo->contractNumber)->setCountryCode('SE')->setDescription('credit desc')->setAmountIncVat(1500.0)->creditPaymentPlanAmount()->doRequest();
     $this->assertEquals(0, $credit->accepted);
 }
 /**
  * @expectedException Svea\ValidationException
  * @expectedExceptionMessage -missing value : Description is required.
  */
 public function test_creditOrderRows_creditPyamentplanOrderRows_noDesciription()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $orderRows[] = WebPayItem::orderRow()->setAmountIncVat(10.0)->setVatPercent(25)->setQuantity(1);
     $orderRows[] = WebPayItem::orderRow()->setAmountIncVat(10.0)->setVatPercent(25)->setQuantity(1);
     $credit = WebPayAdmin::creditOrderRows($config)->setContractNumber(123123)->setCountryCode('SE')->addCreditOrderRows($orderRows)->creditPaymentplanOrderRows()->prepareRequest();
 }
 /**
  * test_manual_CancelOrderBuilder_Card_success 
  * 
  * run this manually after you've performed a card transaction and have set
  * the transaction status to success using the tools in the logg admin.
  */
 function test_manual_CancelOrderBuilder_Card_success()
 {
     // Stop here and mark this test as incomplete.
     $this->markTestIncomplete('skeleton for manual test of cancelOrder for a card order');
     // Set the below to match the transaction, then run the test.
     $customerrefno = "test_1396964349955";
     $transactionId = 580658;
     $request = WebPayAdmin::cancelOrder(Svea\SveaConfig::getDefaultConfig())->setOrderId($transactionId)->setCountryCode("SE")->cancelCardOrder()->doRequest();
     $this->assertInstanceOf("Svea\\HostedAdminResponse", $response);
     $this->assertEquals(1, $response->accepted);
     $this->assertEquals($customerrefno, $response->customerrefno);
 }
 public function test_add_new_notes_invoice()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $orderResponse = WebPay::createOrder($config)->addOrderRow(WebPayItem::orderRow()->setAmountExVat(145.0)->setVatPercent(24)->setQuantity(1))->addCustomerDetails(TestUtil::createIndividualCustomer("SE"))->setCountryCode("SE")->setOrderDate("2012-12-12")->useInvoicePayment()->doRequest();
     $this->assertEquals(1, $orderResponse->accepted);
     $response = WebPayAdmin::updateOrder($config)->setCountryCode('SE')->setOrderId($orderResponse->sveaOrderId)->setNotes($this->notes)->updateInvoiceOrder()->doRequest();
     $this->assertEquals(1, $response->accepted);
     // query order and assert row totals
     $query2 = WebPayAdmin::queryOrder($config)->setOrderId($orderResponse->sveaOrderId)->setCountryCode('SE')->queryInvoiceOrder()->doRequest();
     $this->assertEquals(1, $query2->accepted);
     $this->assertEquals($this->notes, $query2->notes);
     //print_r($orderResponse->sveaOrderId);
 }
 /**
  * @expectedException Svea\ValidationException
  * @expectedExceptionMessage -String length : The field Notes must be a string with a maximum length of 200.
  *
  */
 public function test_updateorder_addnotes_chars_validate_invoice()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $request = WebPayAdmin::updateOrder($config)->setCountryCode('SE')->setOrderId('test')->setNotes('Lorem ipsum dolor sit amet, consectetur adipiscing elit.
                 Nullam faucibus turpis ut nibh cursus, volutpat consectetur odio
                 consequat. Quisque fermentum, augue eget scelerisque hendrerit,
                 libero odio mollis metus, eleifend semper enim ligula eu eros.
                 Nullam varius, nunc sit amet tincidunt volutpat, sem sapien semper
                 libero, at consectetur arcu nulla quis dolor. Nunc bibendum vulputate
                 consequat. Mauris luctus dolor non dui aliquet, ut finibus metus porttitor.
                 Etiam ut lacinia augue, id fringilla lorem. Duis vel pellentesque purus,
                 in feugiat ligula. Curabitur efficitur, nunc et mattis volutpat,
                 urna turpis tempus magna, nec convallis nisi mauris ut eros. ')->updateInvoiceOrder()->prepareRequest();
     $this->assertEquals($this->notes, $request->Notes->enc_value);
 }
 public function test_cancel_multiple_paymentplan_orderRows_()
 {
     // create order
     $country = "SE";
     $campaigncode = TestUtil::getGetPaymentPlanParamsForTesting();
     $order = TestUtil::createOrder(TestUtil::createIndividualCustomer($country))->addOrderRow(WebPayItem::orderRow()->setDescription("second row")->setQuantity(1)->setAmountExVat(1600.0)->setVatPercent(25))->addOrderRow(WebPayItem::orderRow()->setDescription("third row")->setQuantity(1)->setAmountExVat(2400.0)->setVatPercent(25));
     $orderResponse = $order->usePaymentPlanPayment($campaigncode)->doRequest();
     ////print_r( $orderResponse );
     $this->assertEquals(1, $orderResponse->accepted);
     $myOrderId = $orderResponse->sveaOrderId;
     // cancel first row in order
     $cancelOrderRowsRequest = WebPayAdmin::cancelOrderRows(Svea\SveaConfig::getDefaultConfig());
     $cancelOrderRowsRequest->setCountryCode($country);
     $cancelOrderRowsRequest->setOrderId($myOrderId);
     $cancelOrderRowsRequest->setRowsToCancel(array(1, 2));
     $cancelOrderRowsResponse = $cancelOrderRowsRequest->cancelPaymentPlanOrderRows()->doRequest();
     ////print_r( $cancelOrderRowsResponse );
     $this->assertInstanceOf('Svea\\AdminService\\CancelOrderRowsResponse', $cancelOrderRowsResponse);
     $this->assertEquals(1, $cancelOrderRowsResponse->accepted);
 }
 /**
  * test_manual_queryOrder_queryDirectBank_order_step_2
  * 
  * run this test manually after you've performed a direct bank transaction and have gotten the transaction details needed
  */
 function test_manual_queryOrder_queryDirectBank_order_step_2()
 {
     // Stop here and mark this test as incomplete.
     //        $this->markTestIncomplete(
     //            'skeleton for test_manual_queryOrder_queryDirectBank_order_step_2, step 2'
     //        );
     // 1. remove (put in a comment) the above code to enable the test
     // 2. set $createdOrderId to the transactionid from the transaction log of the request done by following the url from step 1 above.
     // 3. below is an example of the xml generated by paypage for the request in step 1 above, along with the transaction id, for reference.
     $createdOrderId = 583556;
     // create order w/three rows (2xA, 1xB) (from step 1 above)
     $country = "SE";
     $a_quantity = 2;
     $a_amountExVat = 1000.0;
     $a_vatPercent = 25;
     $b_quantity = 1;
     $b_amountExVat = 100.0;
     $b_vatPercent = 12;
     $b_articleNumber = "Red 5";
     $b_unit = "pcs.";
     $b_name = "B Name";
     $b_description = "B Description";
     $b_discount = 0;
     // query orderrows
     $queryOrderBuilder = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig())->setOrderId($createdOrderId)->setCountryCode($country);
     $queryResponse = $queryOrderBuilder->queryDirectBankOrder()->doRequest();
     ////print_r( $queryResponse);
     $this->assertEquals(1, $queryResponse->accepted);
     //Svea\QueryTransactionResponse Object
     //(
     //    [transactionId] => 582656
     //    [customerrefno] => clientOrderNumber:2014-05-21T11:30:53 02:00
     //    [merchantid] => 1130
     //    [status] => SUCCESS
     //    [amount] => 261200
     //    [currency] => SEK
     //    [vat] => 51200
     //    [capturedamount] => 261200
     //    [authorizedamount] => 261200
     //    [created] => 2014-05-21 11:31:15.697
     //    [creditstatus] => CREDNONE
     //    [creditedamount] => 0
     //    [merchantresponsecode] => 0
     //    [paymentmethod] => DBNORDEASE
     //    [orderrows] => Array
     //        (
     //            [0] => Svea\OrderRow Object
     //                (
     //                    [articleNumber] =>
     //                    [quantity] => 2
     //                    [unit] =>
     //                    [amountExVat] => 1000
     //                    [amountIncVat] =>
     //                    [vatPercent] => 25
     //                    [name] =>
     //                    [description] =>
     //                    [discountPercent] =>
     //                    [vatDiscount] => 0
     //                )
     //
     //            [1] => Svea\OrderRow Object
     //                (
     //                    [articleNumber] => Red 5
     //                    [quantity] => 1
     //                    [unit] => pcs.
     //                    [amountExVat] => 100
     //                    [amountIncVat] =>
     //                    [vatPercent] => 12
     //                    [name] => B Name
     //                    [description] => B Description
     //                    [discountPercent] =>
     //                    [vatDiscount] => 0
     //                )
     //
     //        )
     //
     //    [accepted] => 1
     //    [resultcode] => 0
     //    [errormessage] =>
     //)
     // assert that order rows are the same
     $this->assertEquals($a_quantity, $queryResponse->numberedOrderRows[0]->quantity);
     $this->assertEquals($a_amountExVat, $queryResponse->numberedOrderRows[0]->amountExVat);
     $this->assertEquals($b_quantity, $queryResponse->numberedOrderRows[1]->quantity);
     $this->assertEquals($b_amountExVat, $queryResponse->numberedOrderRows[1]->amountExVat);
     $this->assertEquals($b_vatPercent, $queryResponse->numberedOrderRows[1]->vatPercent);
     $this->assertEquals($b_articleNumber, $queryResponse->numberedOrderRows[1]->articleNumber);
     $this->assertEquals($b_unit, $queryResponse->numberedOrderRows[1]->unit);
     $this->assertStringStartsWith($b_name, $queryResponse->numberedOrderRows[1]->name);
     $this->assertStringEndsWith($b_description, $queryResponse->numberedOrderRows[1]->description);
     $this->assertEquals($b_discount, $queryResponse->numberedOrderRows[1]->discountPercent);
 }
 /**
  * @expectedException Svea\ValidationException
  * @expectedExceptionMessage -missing value : rowNumber is required
  */
 public function test_add_single_orderRow_missing_rownumber()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $request = WebPayAdmin::updateOrderRows($config)->setCountryCode('SE')->setOrderId('test')->updateOrderRow(WebPayItem::numberedOrderRow()->setAmountExVat(99.98999999999999)->setAmountIncVat(123.9876)->setQuantity(1))->updateInvoiceOrderRows()->prepareRequest();
     //      print_r($request);
 }
 public function test_queryOrder_queryCardOrder_multiple_order_rows()
 {
     // created w/java package TODO make self-contained using webdriver to create card order
     $createdOrderId = 587679;
     // query orderrows
     $queryOrderBuilder = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig())->setOrderId($createdOrderId)->setCountryCode("SE");
     $queryResponse = $queryOrderBuilder->queryCardOrder()->doRequest();
     //print_r( $queryResponse);
     $this->assertEquals(1, $queryResponse->accepted);
     $this->assertEquals(1, $queryResponse->numberedOrderRows[0]->rowNumber);
     $this->assertEquals(1.0, $queryResponse->numberedOrderRows[0]->quantity);
     $this->assertEquals(100.0, $queryResponse->numberedOrderRows[0]->amountExVat);
     $this->assertEquals(25, $queryResponse->numberedOrderRows[0]->vatPercent);
     $this->assertEquals("orderrow 1", $queryResponse->numberedOrderRows[0]->name);
     $this->assertEquals("description 1", $queryResponse->numberedOrderRows[0]->description);
     $this->assertEquals(2, $queryResponse->numberedOrderRows[1]->rowNumber);
     $this->assertEquals(1.0, $queryResponse->numberedOrderRows[1]->quantity);
     $this->assertEquals(100.0, $queryResponse->numberedOrderRows[1]->amountExVat);
     $this->assertEquals(25, $queryResponse->numberedOrderRows[1]->vatPercent);
     $this->assertEquals("orderrow 2", $queryResponse->numberedOrderRows[1]->name);
     $this->assertEquals("description 2", $queryResponse->numberedOrderRows[1]->description);
 }
 function test_AddOrderRows_addPaymentPlanOrderRows_multiple_rows_success()
 {
     $country = "SE";
     $order = TestUtil::createOrderWithoutOrderRows(TestUtil::createIndividualCustomer($country));
     $order->addOrderRow(TestUtil::createOrderRow(1000.0, 1));
     $orderResponse = $order->usePaymentPlanPayment(TestUtil::getGetPaymentPlanParamsForTesting())->doRequest();
     $this->assertEquals(1, $orderResponse->accepted);
     $b_quantity = 1;
     $b_amountExVat = 100.0;
     $b_vatPercent = 12;
     $b_articleNumber = "1071e";
     $b_unit = "pcs.";
     $b_name = "B Name";
     $b_description = "B Description";
     $b_discount = 0;
     $addOrderRowsBuilder = new \Svea\AddOrderRowsBuilder(Svea\SveaConfig::getDefaultConfig());
     $addOrderRowsResponse = $addOrderRowsBuilder->setOrderId($orderResponse->sveaOrderId)->setCountryCode($country)->addOrderRow(TestUtil::createOrderRow(2.0, 1))->addOrderRow(WebPayItem::orderRow()->setQuantity($b_quantity)->setAmountExVat($b_amountExVat)->setVatPercent($b_vatPercent)->setArticleNumber($b_articleNumber)->setUnit($b_unit)->setName($b_name)->setDescription($b_description)->setDiscountPercent($b_discount))->addPaymentPlanOrderRows()->doRequest();
     $this->assertEquals(1, $addOrderRowsResponse->accepted);
     $createdOrderId = $orderResponse->sveaOrderId;
     ////print_r("test_AddOrderRows_addPaymentPlanOrderRows_multiple_rows_success: "); //print_r( $createdOrderId );
     // query orderrows
     $queryOrderBuilder = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig())->setOrderId($createdOrderId)->setCountryCode($country);
     $queryResponse = $queryOrderBuilder->queryPaymentPlanOrder()->doRequest();
     ////print_r( $queryResponse);
     $this->assertEquals(1, $queryResponse->accepted);
     // assert that order rows are the same
     $this->assertEquals($b_quantity, $queryResponse->numberedOrderRows[2]->quantity);
     $this->assertEquals($b_amountExVat, $queryResponse->numberedOrderRows[2]->amountExVat);
     $this->assertEquals($b_vatPercent, $queryResponse->numberedOrderRows[2]->vatPercent);
     $this->assertEquals($b_articleNumber, $queryResponse->numberedOrderRows[2]->articleNumber);
     $this->assertEquals($b_unit, $queryResponse->numberedOrderRows[2]->unit);
     $this->assertStringStartsWith($b_name, $queryResponse->numberedOrderRows[2]->description);
     $this->assertStringEndsWith($b_description, $queryResponse->numberedOrderRows[2]->description);
     $this->assertEquals($b_discount, $queryResponse->numberedOrderRows[2]->discountPercent);
     $this->assertEquals("NotDelivered", $queryResponse->numberedOrderRows[2]->status);
     $this->assertEquals(3, $queryResponse->numberedOrderRows[2]->rowNumber);
 }
 public function test_add_row_multiple_times_as_incvat_mixed_with_exvat()
 {
     $orderrowArray[] = WebPayItem::orderRow()->setAmountExVat(99.98999999999999)->setVatPercent(24)->setQuantity(1);
     $orderrowArray[] = WebPayItem::orderRow()->setAmountExVat(99.98999999999999)->setVatPercent(24)->setQuantity(1);
     $orderrowArray[] = WebPayItem::orderRow()->setAmountIncVat(123.9876)->setVatPercent(24)->setQuantity(1);
     $config = Svea\SveaConfig::getDefaultConfig();
     $request = WebPayAdmin::addOrderRows($config)->setOrderId('sveaOrderId')->setCountryCode('SE')->addOrderRow(WebPayItem::orderRow()->setAmountExVat(99.98999999999999)->setVatPercent(24)->setQuantity(1))->addOrderRow(WebPayItem::orderRow()->setAmountExVat(99.98999999999999)->setAmountIncVat(123.9876)->setQuantity(1))->addOrderRow(WebPayItem::orderRow()->setVatPercent(24)->setAmountIncVat(123.9876)->setQuantity(1))->addInvoiceOrderRows()->prepareRequest();
     $this->assertEquals(99.98999999999999, $request->OrderRows->enc_value->enc_value[0]->enc_value->PricePerUnit->enc_value);
     $this->assertFalse($request->OrderRows->enc_value->enc_value[0]->enc_value->PriceIncludingVat->enc_value);
     $this->assertEquals(99.98999999999999, $request->OrderRows->enc_value->enc_value[1]->enc_value->PricePerUnit->enc_value);
     $this->assertFalse($request->OrderRows->enc_value->enc_value[1]->enc_value->PriceIncludingVat->enc_value);
     $this->assertEquals(99.98999999999999, $request->OrderRows->enc_value->enc_value[2]->enc_value->PricePerUnit->enc_value);
     $this->assertFalse($request->OrderRows->enc_value->enc_value[2]->enc_value->PriceIncludingVat->enc_value);
 }
// To credit the order, we need its transactionid, which we received with the order request response and wrote to file.
$myTransactionId = file_get_contents("transactionid.txt");
if (!$myTransactionId) {
    echo "<pre>Error: transactionid.txt not found, first run cardorder_credit.php to set up the card order. aborting.";
    die;
}
$firstCreditOrderRowsBuilder->setOrderId($myTransactionId)->setCountryCode("SE");
$secondCreditOrderRowsBuilder = WebPayAdmin::creditOrderRows($myConfig);
$secondCreditOrderRowsBuilder->setOrderId($myTransactionId)->setCountryCode("SE");
// To credit specific order rows, you pass the order rows numbers you wish to credit using setRowsToCredit().
// For card orders, you also need to pass in the numbered order rows themselves using addNumberedOrderRows().
// You can use the WebPayAdmin::queryCardOrder() entrypoint method to get a copy of the original order rows sent to Svea.
// Note that these order rows does not update following a successful credit order rows request, even though the
// QueryTransactionResponse field creditedamount returned by a queryOrder request will reflect the current credit status.
//
$queryOrderBuilder = WebPayAdmin::queryOrder($myConfig)->setOrderId($myTransactionId)->setCountryCode("SE");
// query orderrows to pass in creditOrderRows->setNumberedOrderRows()
$queryResponse = $queryOrderBuilder->queryCardOrder()->doRequest();
if (!$queryResponse->accepted) {
    echo "<pre>Error: queryOrder failed. aborting.";
    die;
}
// The query response holds an array of NumberedOrderRow containing the order rows as sent in the createOrder request
$myOriginalOrderRows = $queryResponse->numberedOrderRows;
// Put the numbered order row indexes into an array to pass to setRowsToCredit()
$myRowIndexesToCredit = range(1, count($myOriginalOrderRows));
// original order rows are 1-indexed and contains no gaps
// Add the indexes to credit and the order row data to the builder object.
$secondCreditOrderRowsBuilder->addNumberedOrderRows($myOriginalOrderRows)->setRowsToCredit($myRowIndexesToCredit);
// Send the credit request to Svea:
$myCreditRequest = $secondCreditOrderRowsBuilder->creditCardOrderRows();
 function test_CreditOrderRows_creditCardOrderRows_addCreditOrderRow_setRowToCredit_exceeds_original_order_fails()
 {
     // Stop here and mark this test as incomplete.
     $this->markTestIncomplete('first set up approved invoice and enter id in setUp()');
     // query orderrows to pass in creditOrderRows->setNumberedOrderRows()
     $queryOrderBuilder = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig())->setOrderId($this->successfulTransactionToTest)->setCountryCode($this->country);
     $queryResponse = $queryOrderBuilder->queryCardOrder()->doRequest();
     //print_r( $queryResponse );
     $this->assertEquals(1, $queryResponse->accepted);
     $creditOrderRowsBuilder = new Svea\CreditOrderRowsBuilder(Svea\SveaConfig::getDefaultConfig());
     $creditOrderRowsRequest = $creditOrderRowsBuilder->setOrderId($this->successfulTransactionToTest)->setCountryCode($this->country)->addNumberedOrderRows($queryResponse->numberedOrderRows)->setRowToCredit(5)->creditCardOrderRows();
     $creditOrderRowsResponse = $creditOrderRowsRequest->doRequest();
     //print_r("test_CreditOrderRows_creditCardOrderRows_addCreditOrderRow_setRowToCredit_exceeds_original_order_fails:\n");
     //print_r( $creditOrderRowsResponse );
     $this->assertEquals(0, $creditOrderRowsResponse->accepted);
     $this->assertEquals("119 (ILLEGAL_CREDITED_AMOUNT)", $creditOrderRowsResponse->resultcode);
 }
 public function test_manual_deliver_single_card_orderRow_of_confirmed_order_performs_loweramount_and_returns_ConfirmTransactionError()
 {
     // Stop here and mark this test as incomplete.
     $this->markTestIncomplete('test_manual_deliver_single_card_orderRow_of_confirmed_order_performs_loweramount_and_returns_ConfirmTransactionError');
     // 1. go to https://test.sveaekonomi.se/webpay-admin/admin/start.xhtml
     // 2. go to verktyg -> betalning
     // 3. enter our test merchantid: 1130
     // 4. use the following xml, making sure to update to a unique customerrefno:
     //<paymentmethod>KORTCERT</paymentmethod><currency>EUR</currency><amount>600</amount><vat>120</vat><customerrefno>test_14105300920232</customerrefno><returnurl>https://test.sveaekonomi.se/webpay-admin/admin/merchantresponsetest.xhtml</returnurl><orderrows><row><name>A</name><amount>100</amount><vat>20</vat><description>rowA</description><quantity>1</quantity><sku>665</sku><unit>st</unit></row><row><name>B</name><amount>200</amount><vat>40</vat><description>rowB</description><quantity>1</quantity><sku>666</sku><unit>st</unit></row><row><name>C</name><amount>300</amount><vat>60</vat><description>rowA</description><quantity>1</quantity><sku>667</sku><unit>st</unit></row></orderrows>
     // 5. the result should be:
     //<response>
     //  <transaction id="586209">
     //    <paymentmethod>KORTCERT</paymentmethod>
     //    <merchantid>1130</merchantid>
     //    <customerrefno>test_1410530092038</customerrefno>
     //    <amount>600</amount>
     //    <currency>EUR</currency>
     //    <cardtype>VISA</cardtype>
     //    <maskedcardno>444433xxxxxx1100</maskedcardno>
     //    <expirymonth>01</expirymonth>
     //    <expiryyear>15</expiryyear>
     //    <authcode>763907</authcode>
     //  </transaction>
     //  <statuscode>0</statuscode>
     //</response>
     // 6. enter the received transaction id below and run the test
     // Set the below to match the transaction, then run the test.
     $transactionId = 586263;
     // confirm the transaction
     $confirmRequest = new \Svea\HostedService\ConfirmTransaction(Svea\SveaConfig::getDefaultConfig());
     $confirmRequest->transactionId = $transactionId;
     $confirmRequest->captureDate = date('c');
     $confirmRequest->countryCode = "SE";
     $confirmResponse = $confirmRequest->doRequest();
     ////print_r( $confirmResponse );
     $this->assertInstanceOf("Svea\\HostedService\\ConfirmTransactionResponse", $confirmResponse);
     $this->assertEquals(1, $confirmResponse->accepted);
     $queryRequest = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig());
     $queryResponse = $queryRequest->setCountryCode("SE")->setTransactionId($transactionId)->queryCardOrder()->doRequest();
     //print_r( $queryResponse );
     $this->assertEquals(1, $queryResponse->accepted);
     $this->assertEquals("CONFIRMED", $queryResponse->status);
     $deliverRequest = WebPayAdmin::deliverOrderRows(Svea\SveaConfig::getDefaultConfig());
     $deliverRequest->setCountryCode("SE")->setOrderId($transactionId);
     $deliverRequest->setRowToDeliver(1)->addNumberedOrderRows($queryResponse->numberedOrderRows);
     $deliverResponse = $deliverRequest->deliverCardOrderRows()->doRequest();
     //print_r( $deliverResponse );
     $this->assertInstanceOf("Svea\\HostedService\\ConfirmTransactionResponse", $deliverResponse);
     $this->assertEquals(0, $deliverResponse->accepted);
     $this->assertEquals("105 (ILLEGAL_TRANSACTIONSTATUS)", $deliverResponse->resultcode);
     // confirm of confirmed order
     $this->assertEquals("Invalid transaction status.", $deliverResponse->errormessage);
 }
Пример #15
0
 */
error_reporting(E_ALL);
ini_set('display_errors', 'On');
// Include Svea PHP integration package.
$svea_directory = "../../src/";
require_once $svea_directory . "Includes.php";
// get config object
$myConfig = Svea\SveaConfig::getTestConfig();
//replace with class holding your merchantid, secretword, et al, adopted from package Config/SveaConfig.php
// We wish to credit the entire card order. To do so, we need to credit the order with an amount equal to the original order total.
// This can be done by either :
// 1) (recommended) specifying a new credit row for the entire original order total amount and passing in the new row to credit, or
// 2) specifying that all of the original order rows are to be credited, passing in their number and, as this is a card order, the order rows themselves
// 1) Using the first method (for 2), see file creditorderrows_with_rows.php:
// First we create a builder object and populate them with the required fields.
$firstCreditOrderRowsBuilder = WebPayAdmin::creditOrderRows($myConfig);
// To credit the order, we need its transactionid, which we received with the order request response and wrote to file.
$myTransactionId = file_get_contents("transactionid.txt");
if (!$myTransactionId) {
    echo "<pre>Error: transactionid.txt not found, first run cardorder_credit.php to set up the card order. aborting.";
    die;
}
$firstCreditOrderRowsBuilder->setOrderId($myTransactionId)->setCountryCode("SE");
// Assume that we know that the original order total amount was 1*(100*1.25) + 2*(5.00*1.12) = 125+11.2 = SEK 136.2 (incl. VAT 26.2)
// Create a new OrderRow for the credited amount and add it to the builder object using addCreditOrderRow():
$myCreditRow = WebPayItem::orderRow()->setAmountExVat(300)->setVatPercent(25)->setQuantity(1)->setDescription("Credited order #" . $myTransactionId);
// Add the new order row to credit to the builder object.
$firstCreditOrderRowsBuilder->addCreditOrderRow($myCreditRow);
// Then we can send the credit request to Svea:
$myCreditRequest = $firstCreditOrderRowsBuilder->creditCardOrderRows();
$myCreditResponse = $myCreditRequest->doRequest();
Пример #16
0
 /**
  * Builds the base queryOrder object
  *
  * @param Mage_Payment_Model_Info $payment
  * @param $transactionId
  * @return mixed
  */
 protected function _getCancelOrderRequest(Mage_Payment_Model_Info $payment, $transactionId)
 {
     $order = $payment->getOrder();
     $paymentMethodConfig = $this->getSveaStoreConfClass($order->getStoreId());
     $config = new SveaMageConfigProvider($paymentMethodConfig);
     $countryId = $order->getBillingAddress()->getCountryId();
     $request = WebPayAdmin::cancelOrder($config)->setOrderId($transactionId)->setCountryCode($countryId);
     return $request;
 }
 function test_orderRow_discountPercent_50_percent_order_sent_as_incvat()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $orderResponse = WebPay::createOrder($config)->addOrderRow(WebPayItem::orderRow()->setAmountIncVat(125.0)->setVatPercent(25)->setQuantity(1)->setDiscountPercent(50))->addCustomerDetails(TestUtil::createIndividualCustomer("SE"))->setCountryCode("SE")->setOrderDate("2012-12-12")->useInvoicePayment()->doRequest();
     $this->assertEquals(1, $orderResponse->accepted);
     $this->assertEquals("62.50", $orderResponse->amount);
     // this is where
     $query = WebPayAdmin::queryOrder($config)->setCountryCode('SE')->setOrderId($orderResponse->sveaOrderId)->queryInvoiceOrder()->doRequest();
     $this->assertEquals(1, $query->accepted);
     $this->assertEquals(125.0, $query->numberedOrderRows[0]->amountIncVat);
     $this->assertEquals(25.0, $query->numberedOrderRows[0]->vatPercent);
     $this->assertEquals(50.0, $query->numberedOrderRows[0]->discountPercent);
 }
 public function test_add_single_orderRow_type_mismatch_created_inc_updated_ex()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $orderResponse = WebPay::createOrder($config)->addOrderRow(WebPayItem::orderRow()->setAmountIncVat(123.9876)->setVatPercent(24)->setQuantity(1))->addCustomerDetails(TestUtil::createIndividualCustomer("SE"))->setCountryCode("SE")->setCurrency("SEK")->setOrderDate("2012-12-12")->useInvoicePayment()->doRequest();
     $this->assertEquals(1, $orderResponse->accepted);
     // query order and assert row totals
     $query = WebPayAdmin::queryOrder($config)->setOrderId($orderResponse->sveaOrderId)->setCountryCode('SE')->queryInvoiceOrder()->doRequest();
     $this->assertEquals(1, $query->accepted);
     $this->assertEquals("123.99", $query->numberedOrderRows[0]->amountIncVat);
     // sent 123.9876 inc => 123.99 queried
     $this->assertEquals("24", $query->numberedOrderRows[0]->vatPercent);
     $response = WebPayAdmin::updateOrderRows($config)->setCountryCode('SE')->setOrderId($orderResponse->sveaOrderId)->updateOrderRow(WebPayItem::numberedOrderRow()->setRowNumber(1)->setAmountExVat(99.98999999999999)->setVatPercent(24)->setQuantity(1))->updateInvoiceOrderRows()->doRequest();
     $this->assertEquals(1, $response->accepted);
     // query order and assert row totals
     $query2 = WebPayAdmin::queryOrder($config)->setOrderId($orderResponse->sveaOrderId)->setCountryCode('SE')->queryInvoiceOrder()->doRequest();
     $this->assertEquals(1, $query2->accepted);
     $this->assertEquals("123.99", $query2->numberedOrderRows[0]->amountIncVat);
     // sent 99.99 ex * 1.24 => sent 123.9876 inc => 123.99 queried
     $this->assertEquals("24", $query2->numberedOrderRows[0]->vatPercent);
     //print_r($orderResponse->sveaOrderId);
 }
 public function test_creditOrderRows_creditPyamentplanOrderRows_multipleRows()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $orderInfo = $this->get_orderInfo_sent_inc_vat(1000.0, 25, 1, TRUE);
     $orderRows[] = WebPayItem::orderRow()->setAmountIncVat(10.0)->setVatPercent(25)->setQuantity(1)->setDescription("row 1");
     $orderRows[] = WebPayItem::orderRow()->setAmountIncVat(10.0)->setVatPercent(25)->setQuantity(1)->setDescription("row 2");
     $credit = WebPayAdmin::creditOrderRows($config)->setContractNumber($orderInfo->contractNumber)->setCountryCode('SE')->addCreditOrderRows($orderRows)->creditPaymentplanOrderRows()->doRequest();
     // logs should createOrderEU (w/priceIncludingVat = true) => deliverOrderRows
     // => creditOrderRows (w/priceIncludingVat = false) fail =>  creditOrderRows (w/priceIncludingVat = true) success
     $this->assertEquals(1, $credit->accepted);
 }
 /**
  * test_manual_CancelOrderBuilderRows_Card_single_row_success_step_2
  * 
  * run this test manually after you've performed a direct bank transaction and have gotten the transaction details needed
  */
 function test_manual_CancelOrderBuilderRows_Card_multiple_rows_success_step_2()
 {
     // Stop here and mark this test as incomplete.
     $this->markTestIncomplete('test_manual_CancelOrderBuilderRows_Card_single_row_success_step_2, step 2');
     // 1. remove (put in a comment) the above code to enable the test
     // 2. set $createdOrderId to the transactionid from the transaction log of the request done by following the url from step 1 above.
     // 3. below is an example of the xml generated by paypage for the request in step 1 above, along with the transaction id, for reference.
     $createdOrderId = 583620;
     $country = "SE";
     // query orderrows
     $queryOrderBuilder = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig())->setOrderId($createdOrderId)->setCountryCode($country);
     $queryResponse = $queryOrderBuilder->queryCardOrder()->doRequest();
     //print_r( $queryResponse);
     // 2x100 @25 = 25000 (5000)
     // 1x100 @25 = 12500 (2500)
     // 1x100 @12 = 11200 (1200)
     // amount = 48700, vat = 8700
     $this->assertEquals(1, $queryResponse->accepted);
     $this->assertEquals(48700, $queryResponse->amount);
     $this->assertEquals(8700, $queryResponse->vat);
     $this->assertEquals(48700, $queryResponse->authorizedamount);
     // cancel second, third order row
     $cancelBuilder = new \Svea\CancelOrderRowsBuilder(Svea\SveaConfig::getDefaultConfig());
     $cancelOrderRowsBuilder = $cancelBuilder->setOrderId($createdOrderId)->setCountryCode($country)->setRowsToCancel(array(2, 3))->addNumberedOrderRows($queryResponse->numberedOrderRows);
     $cancelOrderRowsResponse = $cancelOrderRowsBuilder->cancelCardOrderRows()->doRequest();
     $this->assertEquals(1, $cancelOrderRowsResponse->accepted);
     // query orderrows
     $queryOrderBuilder = WebPayAdmin::queryOrder(Svea\SveaConfig::getDefaultConfig())->setOrderId($createdOrderId)->setCountryCode($country);
     $query2Response = $queryOrderBuilder->queryCardOrder()->doRequest();
     //print_r( $query2Response);
     // 2x100 @25 = 25000 (5000)
     // 1x100 @25 = 12500 (2500)     <- credited
     // 1x100 @12 = 11200 (1200)     <- credited
     // amount = 48700-12500-11200, vat = 8700
     $this->assertEquals(1, $query2Response->accepted);
     $this->assertEquals(1, $query2Response->accepted);
     $this->assertEquals(48700, $query2Response->amount);
     $this->assertEquals(8700, $query2Response->vat);
     $this->assertEquals(25000, $query2Response->authorizedamount);
     $this->assertEquals("AUTHORIZED", $query2Response->status);
 }
 function _test_UpdateOrderRows_manually_created_paymentplan()
 {
     $country = "SE";
     //        // create order
     //        $order = TestUtil::createOrderWithoutOrderRows( TestUtil::createIndividualCustomer($country) );
     //        $order->addOrderRow( WebPayItem::orderRow()
     //            ->setArticleNumber("1")
     //            ->setQuantity( 1 )
     //            ->setAmountExVat( 1000.00 )
     //            ->setVatPercent(25)
     //            ->setDescription("A Specification")
     //            ->setName('A Name')
     //            ->setUnit("st")
     //            ->setDiscountPercent(0)
     //        );
     //        $order->addOrderRow( WebPayItem::orderRow()
     //            ->setArticleNumber("2")
     //            ->setQuantity( 1 )
     //            ->setAmountExVat( 2000.00 )
     //            ->setVatPercent(25)
     //            ->setDescription("B Specification")
     //            ->setName('B Name')
     //            ->setUnit("st")
     //            ->setDiscountPercent(0)
     //        );
     //        $order->addOrderRow( WebPayItem::orderRow()
     //            ->setArticleNumber("3")
     //            ->setQuantity( 1 )
     //            ->setAmountExVat( 3000.00 )
     //            ->setVatPercent(25)
     //            ->setDescription("C Specification")
     //            ->setName('C Name')
     //            ->setUnit("st")
     //            ->setDiscountPercent(0)
     //        );
     //        $orderResponse = $order->usePaymentPlanPayment( TestUtil::getGetPaymentPlanParamsForTesting() )->doRequest();
     //        $this->assertEquals(1, $orderResponse->accepted);
     // update all attributes for a numbered orderRow
     $updateOrderRowsResponse = WebPayAdmin::updateOrderRows(Svea\SveaConfig::getDefaultConfig())->setOrderId(364183)->setCountryCode($country)->updateOrderRow(WebPayItem::numberedOrderRow()->setArticleNumber("10")->setQuantity(1)->setAmountExVat(1000.0)->setVatPercent(25)->setDescription("K Specification")->setName('K Name')->setUnit("st")->setDiscountPercent(1)->setRowNumber(1)->setStatus(Svea\NumberedOrderRow::ORDERROWSTATUS_NOTDELIVERED))->updatePaymentPlanOrderRows()->doRequest();
     //print_r( $updateOrderRowsResponse );
     ////print_r("test_UpdateOrderRows_updateInvoiceOrderRows_single_row_success: "); //print_r( $orderResponse->sveaOrderId );
     $this->assertEquals(1, $updateOrderRowsResponse->accepted);
     // todo query result & check amounts, description automatically
 }
 public function test_creditOrderRows_creditCardOrderRows_allows_orderRow_with_zero_amount()
 {
     $dummyorderid = 123456;
     $orderBuilder = WebPayAdmin::creditOrderRows(Svea\SveaConfig::getDefaultConfig())->setOrderId($dummyorderid)->setCountryCode("SE")->addCreditOrderRow(WebPayItem::orderRow()->setAmountExVat(0.0)->setVatPercent(0)->setQuantity(0));
     try {
         $request = $orderBuilder->creditCardOrderRows()->prepareRequest();
     } catch (Exception $e) {
         // fail on validation error
         $this->fail("Unexpected validation exception: " . $e->getMessage());
     }
 }
 function test_orderrow_response_exvat()
 {
     $config = Svea\SveaConfig::getDefaultConfig();
     $orderResponse = WebPay::createOrder($config)->addOrderRow(WebPayItem::orderRow()->setAmountExVat(145.0)->setVatPercent(24)->setQuantity(1))->addCustomerDetails(TestUtil::createIndividualCustomer("SE"))->setCountryCode("SE")->setCurrency("SEK")->setOrderDate("2012-12-12")->useInvoicePayment()->doRequest();
     $response = WebPayAdmin::queryOrder($config)->setCountryCode('SE')->setOrderId($orderResponse->sveaOrderId)->queryInvoiceOrder()->doRequest();
     //print_r($response);
     $this->assertEquals(1, $response->accepted);
     $this->assertEquals(145.0, $response->numberedOrderRows[0]->amountExVat);
     $this->assertEquals(null, $response->numberedOrderRows[0]->amountIncVat);
 }