Пример #1
0
 /**	 
  * @see plugins/tienda/payment_paypalpro/library/plgTiendaPayment_Paypalpro_Processor#validateData()
  */
 function validateData()
 {
     /*
      * perform initial checks 
      */
     if (!count($this->_data)) {
         $this->setError(JText::_('COM_TIENDA_PAYPALPRO_NO_DATA_IS_PROVIDED'));
         return false;
     }
     if (!JRequest::checkToken()) {
         $this->setError(JText::_('COM_TIENDA_INVALID_TOKEN'));
         return false;
     }
     //		if (!$this->getSubscrTypeObj()) {
     //			$this->setError(JText::_('COM_TIENDA_PAYPALPRO_MESSAGE_INVALID_ITEM_TYPE'));
     //			return false;
     //		}
     if (!$this->_getParam('api_username') || !$this->_getParam('api_password') || !$this->_getParam('api_signature')) {
         $this->setError(JText::_('COM_TIENDA_PAYPALPRO_MESSAGE_MERCHANT_CREDENTIALS_ARE_INVALID'));
         return false;
     }
     /*
      * do form verification to make sure information is both present and valid
      */
     // check required fields
     foreach ($this->_required as $required_field) {
         if (empty($this->_data[$required_field])) {
             $this->setError(JText::_('COM_TIENDA_PAYPALPRO_MESSAGE_FILL_IN_REQUIRED_FIELDS'));
             return false;
         }
     }
     // check some specific fields
     if (JString::strlen($this->_data['state']) != 2) {
         $this->setError(JText::_('COM_TIENDA_PAYPALPRO_MESSAGE_STATE_INVALID'));
         return false;
     }
     $user = JFactory::getUser();
     if (!$user->id) {
         // require email address for guest users
         jimport('joomla.mail.helper');
         if (empty($this->_data['email']) || !JMailHelper::isEmailAddress($this->_data['email'])) {
             $this->setError(JText::_('COM_TIENDA_PAYPALPRO_MESSAGE_EMAIL_ADDRESS_REQUIRED'));
             return false;
         }
         if (TiendaHelperUser::emailExists($this->_data['email'])) {
             $this->setError(JText::_('COM_TIENDA_PAYPALPRO_MESSAGE_EMAIL_EXISTS'));
             return false;
         }
     }
     if (JString::strlen($this->_data['cardexp_month']) != 2 || JString::strlen($this->_data['cardexp_year']) != 4) {
         $this->setError(JText::_('COM_TIENDA_PAYPALPRO_MESSAGE_EXPIRATION_DATE_INVALID='));
         return false;
     }
     return true;
 }
Пример #2
0
 public function validate($values, $options = array())
 {
     // fail if user hasn't checked terms & condition
     if ($this->defines->get('require_terms', '0') && empty($values["terms-conditions"])) {
         $this->setError(JText::_('COM_TIENDA_PLEASE_CHECK_THE_TERMS_CONDITIONS'));
     }
     // fail if no user->id and email address fails validation
     jimport('joomla.mail.helper');
     if ($values["user_id"] < 1 && !JMailHelper::isEmailAddress($values['email_address'])) {
         $this->setError(JText::_('COM_TIENDA_PLEASE_ENTER_CORRECT_EMAIL'));
     }
     // fail if registering new user but one of passwords is empty
     if ($values["user_id"] < 1 && $values["checkout_method"] == 'register' && (empty($values["register-new-password"]) || empty($values["register-new-password2"]))) {
         $this->setError(JText::_('COM_TIENDA_PASSWORD_INVALID'));
     }
     // fail if registering new user but passwords don't match
     if ($values["user_id"] < 1 && $values["checkout_method"] == 'register' && $values["register-new-password"] != $values["register-new-password2"]) {
         $this->setError(JText::_('COM_TIENDA_PASSWORDS_DO_NOT_MATCH'));
     }
     // fail if registering new user but account exists for email address provided
     $userHelper = new TiendaHelperUser();
     if ($values["user_id"] < 1 && $values["checkout_method"] == 'register' && $userHelper->emailExists($values['email_address'])) {
         $this->setError(JText::_('COM_TIENDA_EMAIL_ALREADY_EXIST'));
     }
     // fail if user logged in and guest/register method selected
     if ($values["user_id"] > 0 && ($values["checkout_method"] == 'register' || $values["checkout_method"] == 'guest')) {
         $this->setError(JText::_('COM_TIENDA_CANNOT_REGISTER_OR_GUEST_CHECKOUT_WHEN_LOGGED_IN'));
     }
     // fail if password doesn't validate and validation is enabled
     if ($this->defines->get('password_php_validate', '0')) {
         Tienda::load('TiendaHelperUser', 'helpers.user');
         $userHelper = new TiendaHelperUser();
         $validate_pass = $userHelper->validatePassword($values['register-new-password']);
         if (!$validate_pass[0]) {
             foreach ($validate_pass[1] as $error) {
                 $this->setError($error);
             }
         }
     }
     return $this->check();
 }
Пример #3
0
 /**
  * (non-PHPdoc)
  * @see tienda/site/TiendaController#validate()
  */
 function validate()
 {
     $response = array();
     $response['msg'] = '';
     $response['error'] = '';
     Tienda::load('TiendaHelperBase', 'helpers._base');
     $helper = TiendaHelperBase::getInstance();
     // get elements from post
     $elements = json_decode(preg_replace('/[\\n\\r]+/', '\\n', JRequest::getVar('elements', '', 'post', 'string')));
     // Test if elements are empty
     // Return proper message to user
     if (empty($elements)) {
         // do form validation
         // if it fails check, return message
         $response['error'] = '1';
         $response['msg'] = $helper->generateMessage(JText::_('COM_TIENDA_ERROR_WHILE_VALIDATING_THE_PARAMETERS'));
         echo json_encode($response);
         return;
     }
     // convert elements to array that can be binded
     Tienda::load('TiendaHelperBase', 'helpers._base');
     $helper = TiendaHelperBase::getInstance();
     $submitted_values = $helper->elementsToArray($elements);
     $step = !empty($submitted_values['step']) ? strtolower($submitted_values['step']) : '';
     switch ($step) {
         case "selectshipping":
             // Validate the email address if it is a guest checkout!
             if ($this->defines->get('guest_checkout_enabled', '1') && !empty($submitted_values['guest'])) {
                 jimport('joomla.mail.helper');
                 if (!JMailHelper::isEmailAddress($submitted_values['email_address'])) {
                     $response['msg'] = $helper->generateMessage(JText::_('COM_TIENDA_PLEASE_INSERT_A_CORRECT_EMAIL_ADDRESS'));
                     $response['error'] = '1';
                     echo json_encode($response);
                     return;
                 }
                 Tienda::load('TiendaHelperUser', 'helpers.user');
                 if (TiendaHelperUser::emailExists($submitted_values['email_address'])) {
                     $response['msg'] = $helper->generateMessage(JText::_('COM_TIENDA_THIS_EMAIL_ADDRESS_IS_ALREADY_REGISTERED'));
                     $response['error'] = '1';
                     echo json_encode($response);
                     return;
                 }
             }
             // checking for the registartion
             if (!empty($submitted_values['register'])) {
                 // verify that fields are present
                 if (empty($submitted_values['email_address']) || empty($submitted_values['name']) || empty($submitted_values['username']) || empty($submitted_values['password']) || empty($submitted_values['password2'])) {
                     $response['error'] = '1';
                     $response['msg'] .= $helper->generateMessage(JText::_('COM_TIENDA_ALL_FIELDS_OF_REGISTRATION_SECTIONS_ARE_MANDATORY'));
                     echo json_encode($response);
                     return;
                 }
                 jimport('joomla.mail.helper');
                 if (!JMailHelper::isEmailAddress($submitted_values['email_address'])) {
                     $response['msg'] = $helper->generateMessage(JText::_('COM_TIENDA_PLEASE_INSERT_A_CORRECT_EMAIL_ADDRESS'));
                     $response['error'] = '1';
                     echo json_encode($response);
                     return;
                 }
                 Tienda::load('TiendaHelperUser', 'helpers.user');
                 if (TiendaHelperUser::emailExists($submitted_values['email_address'])) {
                     $response['msg'] = $helper->generateMessage(JText::_('COM_TIENDA_THIS_EMAIL_ADDRESS_IS_ALREADY_REGISTERED='));
                     $response['error'] = '1';
                     echo json_encode($response);
                     return;
                 }
                 if (TiendaHelperUser::usernameExists($submitted_values['username'])) {
                     $response['error'] = '1';
                     $response['msg'] .= $helper->generateMessage(JText::_('COM_TIENDA_USER_NAME_ALREADY_EXISTS'));
                     echo json_encode($response);
                     return;
                     // TODO user already exists
                 }
                 if (strcmp($submitted_values['password'], $submitted_values['password2'])) {
                     $response['error'] = '1';
                     $response['msg'] .= $helper->generateMessage(JText::_('COM_TIENDA_PASSWORDS_ARE_NOT_MATCHING'));
                     echo json_encode($response);
                     return;
                     // TODO user already exists
                 }
             }
             // Check if there are errors in the Shipping area. If yes, return without going on
             if (!$this->validateSelectShipping($submitted_values)) {
                 return;
             }
             break;
         case "selectpayment":
             $this->validateSelectPayment($submitted_values);
             break;
         default:
             $response['error'] = '1';
             $response['msg'] = $helper->generateMessage(JText::_('COM_TIENDA_INVALID_STEP_IN_CHECKOUT_PROCESS'));
             echo json_encode($response);
             break;
     }
     return;
 }
Пример #4
0
 /**
  *
  * @param $moneris_values
  * @return unknown_type
  */
 function _verifyForm($data)
 {
     Tienda::load('TiendaHelperUser', 'helpers.user');
     $object = new JObject();
     $object->error = false;
     $object->message = '';
     $user = JFactory::getUser();
     $required = array('first_name', 'last_name', 'address_line_1', 'city', 'state', 'postal_code', 'card_type', 'card_number', 'expiration_month', 'expiration_year', 'cvv_number');
     // verify the fields in the form
     // if any fail verification, set
     // $object->error = true
     // $object->message .= '<li>x item failed verification</li>'
     foreach ($data as $key => $value) {
         switch (strtolower($key)) {
             case "email":
                 if (!$user->id) {
                     if (!isset($data[$key]) || !JString::strlen($data[$key])) {
                         $object->error = true;
                         $object->message .= "<li>" . JText::_('Email Address Required') . "</li>";
                     }
                     if ($emailExists = TiendaHelperUser::emailExists($data[$key])) {
                         $object->error = true;
                         $object->message .= '<li>' . JText::_('Email Exists') . '</li>';
                     }
                     jimport('joomla.mail.helper');
                     if (!($isValidEmail = JMailHelper::isEmailAddress($data[$key]))) {
                         $object->error = true;
                         $object->message .= "<li>" . JText::_('Email Address Invalid') . "</li>";
                     }
                 }
                 break;
             default:
                 if (in_array($key, $required) && empty($value)) {
                     $object->error = true;
                     $object->message .= "<li>" . JText::_("Invalid " . $key) . "</li>";
                 }
                 break;
         }
     }
     return $object;
 }