Example #1
0
 public function testDisplayFirstSixLastFour()
 {
     $card = new Card();
     $card->setNumber("1234567890ABCDEF");
     $expectedResult = "123456******CDEF";
     $result = $card->displayFirstSixLastFour();
     $this->assertTrue($expectedResult === $result, "Results are not as expected");
 }
 /**
  * Tests the hash calculation for an auth payment.
  */
 public function testVerifySigHashGeneration()
 {
     $card = new Card();
     $request = new ThreeDSecureRequest();
     $request->addType(ThreeDSecureType::VERIFY_SIG)->addTimeStamp(SampleXmlValidationUtils::TIMESTAMP)->addMerchantId(SampleXmlValidationUtils::MERCHANT_ID)->addOrderId(SampleXmlValidationUtils::ORDER_ID)->addAmount(SampleXmlValidationUtils::AMOUNT)->addCurrency(SampleXmlValidationUtils::CURRENCY)->addCard($card->addNumber(SampleXmlValidationUtils::CARD_NUMBER));
     $request->hash(SampleXmlValidationUtils::SECRET);
     $this->assertEquals(SampleXmlValidationUtils::REQUEST_HASH, $request->getHash());
 }
 /**
  * Checks whether the given class is supported for denormalization by this normalizer.
  *
  * @param mixed $data Data to denormalize from.
  * @param string $type The class to which the data should be denormalized.
  * @param string $format The format being deserialized from.
  *
  * @return bool
  */
 public function supportsDenormalization($data, $type, $format = null)
 {
     if ($format == "xml" && $type == Card::GetClassName()) {
         return true;
     }
     return false;
 }
 /**
  * Tests and invalid currency value (null)
  */
 public function testNullValueOnCurrency()
 {
     $card = new Card();
     $card->addExpiryDate(SampleXmlValidationUtils::CARD_EXPIRY_DATE)->addNumber(SampleXmlValidationUtils::CARD_NUMBER)->addCardType(new CardType(CardType::VISA))->addCardHolderName(SampleXmlValidationUtils::CARD_HOLDER_NAME)->addCvn(SampleXmlValidationUtils::CARD_CVN_NUMBER)->addCvnPresenceIndicator(SampleXmlValidationUtils::$CARD_CVN_PRESENCE)->addIssueNumber(SampleXmlValidationUtils::CARD_ISSUE_NUMBER);
     $tssInfo = new TssInfo();
     $businessAddress = new Address();
     $businessAddress->addType(SampleXmlValidationUtils::$ADDRESS_TYPE_BUSINESS)->addCode(SampleXmlValidationUtils::ADDRESS_CODE_BUSINESS)->addCountry(SampleXmlValidationUtils::ADDRESS_COUNTRY_BUSINESS);
     $shippingAddress = new Address();
     $shippingAddress->addType(SampleXmlValidationUtils::$ADDRESS_TYPE_SHIPPING)->addCode(SampleXmlValidationUtils::ADDRESS_CODE_SHIPPING)->addCountry(SampleXmlValidationUtils::ADDRESS_COUNTRY_SHIPPING);
     $tssInfo->addCustomerNumber(SampleXmlValidationUtils::CUSTOMER_NUMBER)->addProductId(SampleXmlValidationUtils::PRODUCT_ID)->addVariableReference(SampleXmlValidationUtils::VARIABLE_REFERENCE)->addCustomerIpAddress(SampleXmlValidationUtils::CUSTOMER_IP)->addAddress($businessAddress)->addAddress($shippingAddress);
     $autoSettle = new AutoSettle();
     $autoSettle = $autoSettle->addFlag(SampleXmlValidationUtils::$AUTO_SETTLE_FLAG);
     $mpi = new Mpi();
     $mpi->addCavv(SampleXmlValidationUtils::THREE_D_SECURE_CAVV)->addXid(SampleXmlValidationUtils::THREE_D_SECURE_XID)->addEci(SampleXmlValidationUtils::THREE_D_SECURE_ECI);
     $recurring = new Recurring();
     $recurring->addFlag(SampleXmlValidationUtils::$RECURRING_FLAG)->addSequence(SampleXmlValidationUtils::$RECURRING_SEQUENCE)->addType(SampleXmlValidationUtils::$RECURRING_TYPE);
     $expectedCurrency = null;
     $request = new PaymentRequest();
     $request->addAccount(SampleXmlValidationUtils::ACCOUNT)->addMerchantId(SampleXmlValidationUtils::MERCHANT_ID)->addType(PaymentType::AUTH)->addAmount(SampleXmlValidationUtils::AMOUNT)->addCurrency($expectedCurrency)->addCard($card)->addAutoSettle($autoSettle)->addTimestamp(SampleXmlValidationUtils::TIMESTAMP)->addChannel(SampleXmlValidationUtils::CHANNEL)->addOrderId(SampleXmlValidationUtils::ORDER_ID)->addHash(SampleXmlValidationUtils::REQUEST_HASH)->addComment(SampleXmlValidationUtils::COMMENT1)->addComment(SampleXmlValidationUtils::COMMENT2)->addPaymentsReference(SampleXmlValidationUtils::PASREF)->addAuthCode(SampleXmlValidationUtils::AUTH_CODE)->addRefundHash(SampleXmlValidationUtils::REFUND_HASH)->addFraudFilter(SampleXmlValidationUtils::FRAUD_FILTER)->addRecurring($recurring)->addTssInfo($tssInfo)->addMpi($mpi);
     // convert to XML
     $xml = $request->toXml();
     // Convert from XML back to PaymentRequest
     /* @var PaymentRequest $fromXmlRequest */
     $fromXmlRequest = new PaymentRequest();
     $fromXmlRequest = $fromXmlRequest->fromXml($xml);
     $this->assertEquals($expectedCurrency, $fromXmlRequest->getAmount()->getCurrency());
 }
 private function normaliseCVN(Card $card)
 {
     $cvn = $card->getCvn();
     if (is_null($cvn)) {
         return array();
     }
     return array_filter(array('number' => $cvn->getNumber(), 'presind' => $cvn->getPresenceIndicator()));
 }
 /**
  * Tests the hash calculation for a card-update transaction.
  */
 public function testDccAuthHashGeneration()
 {
     $card = new Card();
     $card->addNumber(SampleXmlValidationUtils::DCC_AUTH_CARD_NUMBER)->addExpiryDate(SampleXmlValidationUtils::DCC_AUTH_CARD_EXPIRY_DATE)->addCardHolderName(SampleXmlValidationUtils::DCC_AUTH_CARD_HOLDER_NAME)->addType(SampleXmlValidationUtils::DCC_AUTH_CARD_TYPE);
     // add dccinfo. Note that the type is not set as it is already defaulted to 1
     $dccInfo = new DccInfo();
     $dccInfo->addDccProcessor(SampleXmlValidationUtils::DCC_AUTH_CCP);
     $request = new PaymentRequest();
     $request->addTimeStamp(SampleXmlValidationUtils::DCC_AUTH_TIMESTAMP)->addMerchantId(SampleXmlValidationUtils::DCC_AUTH_MERCHANT_ID)->addAmount(SampleXmlValidationUtils::DCC_AUTH_AMOUNT)->addCurrency(SampleXmlValidationUtils::DCC_AUTH_CURRENCY)->addOrderId(SampleXmlValidationUtils::DCC_AUTH_ORDER_ID)->addCard($card)->addDccInfo($dccInfo);
     $request->hash(SampleXmlValidationUtils::SECRET);
     $this->assertEquals(SampleXmlValidationUtils::DCC_AUTH_REQUEST_HASH, $request->getHash());
 }
 private function denormaliseCard($array)
 {
     return $this->serializer->denormalize($array['card'], Card::GetClassName(), $this->format, $this->context);
 }