/** * @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')); } }
/** * @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'))); } }
/** * @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'))); } }
/** * @param Helper\CreditCard $creditCard */ public function validateCard(Helper\CreditCard $creditCard) { $this->mockExecute([], Enum\DataMode::NONE, Enum\DataMode::NONE, $creditCard->validate() ? 200 : 403); }
/** * @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')]); }
/** * @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'))); } }
/** * @param Helper\CreditCard $creditCard */ public function validateCard(Helper\CreditCard $creditCard) { $this->api('checkcard', ['card-number' => $creditCard->getCardNumber(), 'card-exp' => $creditCard->getCardExpiry()->format('m/y')]); }
/** * @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); }
/** * @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'))); } }
/** * @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'))); }
/** * @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]); }
/** * @param Helper\CreditCard $creditCard */ public function validateCard(Helper\CreditCard $creditCard) { $this->mockExecute(['ProcStatus' => '0', 'ApprovalStatus' => $creditCard->validate() ? '1' : '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'); } }