Пример #1
0
 /**
  * @param Response\TransactionInfo $response
  */
 public function transactionInfoResponse(Response\TransactionInfo $response)
 {
     $this->setSuccess($response, $response->getApiResponse('ProcStatus') === '0' && $response->getApiResponse('ApprovalStatus') === '1');
     if ($response->getSuccess()) {
         $creditCard = new Helper\CreditCard();
         $creditCard->setName($response->getApiResponse('CustomerName'));
         $creditCard->setCardNumber($response->getApiResponse('AccountNum'));
         $response->setCreditCard($creditCard);
         $response->setAmount($response->getApiResponse('RequestedAmount'));
         $response->setOperation($response->getApiResponse('MessageType'));
     }
 }
Пример #2
0
 /**
  * @param Response\TransactionInfo $response
  *
  * @throws Exception\MethodNotSupportedException
  */
 public function transactionInfoResponse(Response\TransactionInfo $response)
 {
     $this->setSuccess($response);
     if ($response->getSuccess()) {
         $creditCard = new Helper\CreditCard();
         $cardInfo = $response->getApiResponse('card');
         $billingData = $response->getApiResponse('billing');
         $cardExpMonth = $cardInfo['expiry_month'];
         $cardExpYear = $cardInfo['expiry_year'] + 2000;
         $creditCard->setCardExpiry($cardExpMonth, $cardExpYear);
         $creditCard->setCardNumber('0000 0000 0000 ' . $cardInfo['last_four']);
         $creditCard->setName($cardInfo['name']);
         $creditCard->setAddress1($billingData['address_line1']);
         $creditCard->setAddress2($billingData['address_line2']);
         $creditCard->setCity($billingData['city']);
         $creditCard->setState($billingData['province']);
         $creditCard->setZipCode($billingData['postal_code']);
         $creditCard->setCountry($billingData['country']);
         $creditCard->setPhoneNumber($billingData['phone_number']);
         $creditCard->setEmailAddress($billingData['email_address']);
         $response->setCreditCard($creditCard);
         $response->setAmount($response->getApiResponse('amount'));
         $response->setOperation($response->getApiResponse('type'));
         $response->setDate(new \DateTime($response->getApiResponse('created')));
     }
 }
Пример #3
0
 /**
  * @param Response\TransactionInfo $response
  */
 public function transactionInfoResponse(Response\TransactionInfo $response)
 {
     $this->setSuccess($response);
     if ($response->getSuccess()) {
         $creditCard = new Helper\CreditCard();
         $cardInfo = $response->getApiResponse('card');
         $customerInfo = $cardInfo['customer'];
         $creditCard->setCardExpiry($cardInfo['exp_month'], $cardInfo['exp_year']);
         $creditCard->setCardNumber('0000 0000 0000 ' . $cardInfo['last4']);
         $creditCard->setName($cardInfo['name']);
         $creditCard->setAddress1($cardInfo['address_line1']);
         $creditCard->setAddress2($cardInfo['address_line2']);
         $creditCard->setCity($cardInfo['address_city']);
         $creditCard->setState($cardInfo['address_state']);
         $creditCard->setZipCode($cardInfo['address_zip']);
         $creditCard->setCountry($cardInfo['address_country']);
         $creditCard->setEmailAddress(isset($customerInfo['email']) ? $customerInfo['email'] : null);
         $response->setCreditCard($creditCard);
         $response->setAmount($response->getApiResponse('amount'));
         $response->setOperation($response->getApiResponse('object'));
         $response->setDate((new \DateTime())->setTimestamp($response->getApiResponse('created')));
     }
 }
Пример #4
0
 /**
  * @param Helper\CreditCard $creditCard
  */
 public function validateCard(Helper\CreditCard $creditCard)
 {
     $this->mockExecute([], Enum\DataMode::NONE, Enum\DataMode::NONE, $creditCard->validate() ? 200 : 403);
 }
Пример #5
0
 /**
  * @param Helper\CreditCard $creditCard
  */
 public function validateCard(Helper\CreditCard $creditCard)
 {
     $this->api('CreditTransaction', ['tran' => $this->tStreamXML(['Account' => ['AcctNo' => $creditCard->getCardNumber(), 'ExpDate' => $creditCard->getCardExpiry()->format('my')], 'RecordNo' => 'RecordNumberRequested', 'Frequency' => 'OneTime'], 'CardLookup')]);
 }
Пример #6
0
 /**
  * @param Response\TransactionInfo $response
  */
 public function transactionInfoResponse(Response\TransactionInfo $response)
 {
     $transactionData = [];
     if (null !== $response->getApiResponse('a001')) {
         parse_str($response->getApiResponse('a001'), $transactionData);
     }
     $transactionInfo = function ($key) use($transactionData) {
         return false === isset($transactionData[$key]) ? null : $transactionData[$key];
     };
     $this->setSuccess($response, $transactionInfo('status') === 'Approved');
     if ($transactionInfo('status') !== null) {
         $creditCard = new Helper\CreditCard();
         $cardExp = $transactionInfo('expiration');
         if (sizeOf($cardExp)) {
             $creditCard->setCardExpiry(substr($cardExp, 0, 2), (int) substr($cardExp, 2) + 2000);
         }
         $creditCard->setCardNumber($transactionInfo('account'));
         $response->setCreditCard($creditCard);
         $response->setAmount($transactionInfo('total'));
         $response->setOperation($transactionInfo('trantype'));
         $response->setVoided($transactionInfo('voided') === 'true');
         $response->setDate(new \DateTime($transactionInfo('transdatetime')));
     }
 }
Пример #7
0
 /**
  * @param Helper\CreditCard $creditCard
  */
 public function validateCard(Helper\CreditCard $creditCard)
 {
     $this->api('checkcard', ['card-number' => $creditCard->getCardNumber(), 'card-exp' => $creditCard->getCardExpiry()->format('m/y')]);
 }
Пример #8
0
 /**
  * @param Helper\CreditCard $creditCard
  */
 public function validateCard(Helper\CreditCard $creditCard)
 {
     $this->processCreditCard('CardVerify', ['CardNum' => $creditCard->getCardNumber(), 'ExpDate' => $creditCard->getCardExpiry()->format('my'), 'NameOnCard' => $creditCard->getName(), 'InvNum' => substr(md5($creditCard->getCardNumber() . time()), 0, 16), 'Zip' => $creditCard->getZipCode(), 'Street' => $creditCard->getAddress1(), 'CVNum' => $creditCard->getCardCVV()], true);
 }
Пример #9
0
 /**
  * @param Response\TransactionInfo $response
  */
 public function transactionInfoResponse(Response\TransactionInfo $response)
 {
     $transactionData = [];
     if (null !== $response->getApiResponse('a001')) {
         parse_str($response->getApiResponse('a001'), $transactionData);
     }
     $transactionInfo = function ($key) use($transactionData) {
         return false === isset($transactionData[$key]) ? null : $transactionData[$key];
     };
     $response->setSuccess($transactionInfo('FinalStatus') === 'success');
     if ($transactionInfo('FinalStatus') !== null) {
         $creditCard = new Helper\CreditCard();
         $cardExp = $transactionInfo('card-exp');
         $cardExpMonth = null;
         $cardExpYear = null;
         if (sizeOf($cardExp)) {
             list($cardExpMonth, $cardExpYear) = explode('/', $cardExp);
             $cardExpYear += 2000;
             $creditCard->setCardExpiry($cardExpMonth, $cardExpYear);
         }
         $creditCard->setName($transactionInfo('card-name'));
         $creditCard->setAddress1($transactionInfo('card-address1'));
         $creditCard->setAddress2($transactionInfo('card-address2'));
         $creditCard->setCity($transactionInfo('card-city'));
         $creditCard->setState($transactionInfo('card-state'));
         $creditCard->setZipCode($transactionInfo('card-zip'));
         $creditCard->setCountry($transactionInfo('card-country'));
         $creditCard->setCardNumber($transactionInfo('card-number'));
         $response->setCreditCard($creditCard);
         $response->setAmount($transactionInfo('card-amount'));
         $response->setOperation($transactionInfo('operation'));
         $response->setDate(new \DateTime($transactionInfo('trans_date')));
     }
 }
Пример #10
0
 /**
  * @param Response\TransactionInfo $response
  */
 public function transactionInfoResponse(Response\TransactionInfo $response)
 {
     $this->setSuccess($response, $response->getApiResponse('ResultCode') === '0');
     $creditCard = new Helper\CreditCard();
     $cardExp = $response->getApiResponse('ExpDate');
     if (sizeOf($cardExp)) {
         $creditCard->setCardExpiry(substr($cardExp, 0, 2), (int) substr($cardExp, 2) + 2000);
     }
     $creditCard->setCardNumber($response->getApiResponse('CardNumber'));
     $response->setCreditCard($creditCard);
     $response->setAmount($response->getApiResponse('Amount'));
     $response->setOperation($response->getApiResponse('TransactionType'));
     $response->setVoided($response->getApiResponse('Voided') === '1');
     $response->setDate(new \DateTime($response->getApiResponse('CreateDate')));
 }
Пример #11
0
 /**
  * @param Helper\CreditCard $creditCard
  */
 public function validateCard(Helper\CreditCard $creditCard)
 {
     $this->api('card_verification', ['order_id' => 'vc-' . md5(time() . $creditCard->getCardNumber()), 'pan' => $creditCard->getCardNumber(), 'expdate' => $creditCard->getCardExpiry()->format('ym'), 'crypt_type' => 7]);
 }
Пример #12
0
 /**
  * @param Helper\CreditCard $creditCard
  */
 public function validateCard(Helper\CreditCard $creditCard)
 {
     $this->mockExecute(['ProcStatus' => '0', 'ApprovalStatus' => $creditCard->validate() ? '1' : '0']);
 }
Пример #13
0
 /**
  * @param Helper\CreditCard $creditCard
  *
  * @throws Exception\BlacklistedCreditCardException
  */
 private function blacklistCheck(Helper\CreditCard $creditCard)
 {
     $blacklist = [];
     // TODO: store blacklist in separate file
     if (true === in_array($creditCard->getCardNumber(), $blacklist)) {
         throw new Exception\BlacklistedCreditCardException('Invalid credit card');
     }
 }