/** * Validate and data and set form errors accordingly. */ public function validateValues(array &$element, array &$data) { $data['credit_card_number'] = preg_replace('/\\s+/', '', $data['credit_card_number']); require_once dirname(__FILE__) . '/../creditcard_validation.inc.php'; $credit_card_validator = new \CreditCardValidator(); $validation_result = $credit_card_validator->isValidCreditCard($data['credit_card_number'], '', TRUE); if (!$validation_result->valid) { $this->formError($element['credit_card_number'], t('%card is not a valid credit card number.', array('%card' => $data['credit_card_number']))); } elseif ($validation_result->issuer != $data['issuer']) { $this->formError($element['credit_card_number'], t('Credit card number %card doesn\'t appear to be from issuer %issuer.', array('%card' => $data['credit_card_number'], '%issuer' => self::$issuers[$data['issuer']]))); } // Validate secure code (CVC). if (!$credit_card_validator->isValidCardValidationCode($data['secure_code'], $data['issuer'])) { $msg = t('The %secure_code_label %code is not valid.', array('%card' => $data['secure_code'], '%secure_code_label' => self::$cvc_label[$data['issuer']])); $this->formError($element['secure_code'], $msg); } // Validate expiry date. if ($data['expiry_date'] = $this->parseDate($data['expiry_date'])) { if ($data['expiry_date']->getTimestamp() < time()) { $this->formError($element['expiry_date'], t('The credit card has expired.')); } } else { $this->formError($element['expiry_date'], t('Please enter a valid expiration date')); } }
/** * Retorna el la franquicia a la que pertenece un numero de TC */ public function getFranquicia($cart_number, $pasarela) { require_once _PS_MODULE_DIR_ . 'payulatam/creditcards.class.php'; $arraypaymentMethod = array("VISA" => 'VISA', 'DISCOVER' => 'DINERS', 'AMERICAN EXPRESS' => 'AMEX', 'MASTERCARD' => 'MASTERCARD'); $arraypaymentMethod2 = array("VISA" => 'VISA', 'DISCOVER' => 'DINERS', 'AMERICAN EXPRESS' => 'AmEx', 'MASTERCARD' => 'MasterCard', 'DinersClub' => 'DinersClub', 'UnionPay' => 'UnionPay'); $CCV = new CreditCardValidator(); $CCV->Validate($cart_number); $key = $CCV->GetCardName($CCV->GetCardInfo()['type']); if ($CCV->GetCardInfo()['status'] == 'invalid') { return json_encode(array('ERROR' => 'El numero de la tarjeta no es valido.')); } switch ($pasarela) { case 'payulatam': return array_key_exists(strtoupper($key), $arraypaymentMethod) ? $arraypaymentMethod[strtoupper($key)] : 'N/A'; break; default: return array_key_exists(strtoupper($key), $arraypaymentMethod2[strtoupper($key)]) ? $arraypaymentMethod2[strtoupper($key)] : 'N/A'; break; } }