Example #1
0
 /**
  * Update current token
  *
  * @param Varien_Object $billing
  * @param Varien_Object $infoInstance
  * @return Eway_Rapid31_Model_Request_Token
  */
 public function updateToken(Varien_Object $billing, Varien_Object $infoInstance)
 {
     if (!Mage::helper('ewayrapid')->isBackendOrder() && !Mage::getSingleton('ewayrapid/config')->canEditToken()) {
         Mage::throwException(Mage::helper('ewayrapid')->__('Customers are not allowed to edit token.'));
     }
     // Empty Varien_Object's data
     $this->unsetData();
     $customerParam = Mage::getModel('ewayrapid/field_customer');
     $customerParam->setTitle($billing->getPrefix())->setFirstName($billing->getFirstname())->setLastName($billing->getLastname())->setCompanyName($billing->getCompany())->setJobDescription($billing->getJobDescription())->setStreet1($billing->getStreet1())->setStreet2($billing->getStreet2())->setCity($billing->getCity())->setState($billing->getRegion())->setPostalCode($billing->getPostcode())->setCountry(strtolower($billing->getCountryModel()->getIso2Code()))->setEmail($billing->getEmail())->setPhone($billing->getTelephone())->setMobile($billing->getMobile())->setFax($billing->getFax());
     $customerHelper = Mage::helper('ewayrapid/customer');
     $customerTokenId = $customerHelper->getCustomerTokenId($infoInstance->getSavedToken());
     if ($customerTokenId) {
         $customerParam->setTokenCustomerID($customerTokenId);
     } else {
         Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while updating token: Token info does not exist.'));
     }
     $cardDetails = Mage::getModel('ewayrapid/field_cardDetails');
     $cardDetails->setName($infoInstance->getCcOwner())->setExpiryMonth($infoInstance->getCcExpMonth())->setNumber('444433XXXXXX1111')->setExpiryYear($infoInstance->getCcExpYear())->setCVN($infoInstance->getCcCid());
     $customerParam->setCardDetails($cardDetails);
     $this->setCustomer($customerParam);
     $response = $this->_doRapidAPI('Customer', 'PUT');
     if ($response->isSuccess()) {
         $customerReturn = $response->getCustomer();
         $customerReturn['RegionId'] = !$billing->getRegion() && $billing->getRegionId() ? $billing->getRegionId() : '';
         unset($customerReturn['CardDetails']);
         $tokenInfo = array('Token' => $response->getTokenCustomerID(), 'Owner' => $infoInstance->getCcOwner(), 'ExpMonth' => $infoInstance->getCcExpMonth(), 'ExpYear' => $infoInstance->getCcExpYear(), 'Address' => Mage::getModel('ewayrapid/field_customer')->addData($customerReturn));
         Mage::helper('ewayrapid/customer')->updateToken($infoInstance->getSavedToken(), $tokenInfo);
         return $this;
     } else {
         Mage::throwException(Mage::helper('ewayrapid')->__('An error occurred while updating token. Please try again. (Error message: %s)', $response->getMessage()));
     }
 }
Example #2
0
 /**
  * Assign data to info model instance
  *
  * @param   mixed $data
  * @return  Mage_Payment_Model_Info
  */
 public function assignData($data)
 {
     if (!$data instanceof Varien_Object) {
         $data = new Varien_Object($data);
     }
     $info = $this->getInfoInstance();
     if (Mage::getStoreConfig('payment/ewayrapid_general/connection_type') === Eway_Rapid31_Model_Config::CONNECTION_TRANSPARENT && !$this->_isBackendOrder) {
         $info->setTransparentSaved($data->getTransparentSaved());
     }
     if ($data->getSavedToken() == Eway_Rapid31_Model_Config::TOKEN_NEW) {
         if ($this->_connectionType === Eway_Rapid31_Model_Config::CONNECTION_SHARED_PAGE && !$this->_isBackendOrder) {
             Mage::getSingleton('core/session')->setData('newToken', 1);
         }
         $info->setIsNewToken(true);
     } else {
         if ($this->_connectionType === Eway_Rapid31_Model_Config::CONNECTION_SHARED_PAGE && !$this->_isBackendOrder) {
             Mage::getSingleton('core/session')->setData('editToken', $data->getSavedToken());
         }
         $info->setSavedToken($data->getSavedToken());
         // Update token
         if ($data->getCcOwner()) {
             $info->setIsUpdateToken(true);
         }
     }
     parent::assignData($data);
     Mage::helper('ewayrapid')->serializeInfoInstance($info);
     return $this;
 }
Example #3
0
 /**
  * Assign data to info model instance
  *
  * @param   mixed $data
  * @return  Mage_Payment_Model_Info
  */
 public function assignData($data)
 {
     if (!$data instanceof Varien_Object) {
         $data = new Varien_Object($data);
     }
     $info = $this->getInfoInstance();
     if (!$this->_isBackendOrder && $this->_connectionType === Eway_Rapid31_Model_Config::CONNECTION_SHARED_PAGE) {
         //Mage::getSingleton('core/session')->setData('sharedpagePaypal', $data->getSharedpageNotsaved());
         Mage::getSingleton('core/session')->setData('sharedpagePaypal', 'paypal');
     } elseif (!$this->_isBackendOrder && $this->_connectionType === Eway_Rapid31_Model_Config::CONNECTION_TRANSPARENT) {
         $info->setTransparentNotsaved($data->getTransparentNotsaved());
         //Option choice
         if ($data->getMethod() == 'ewayrapid_saved' && !$data->getTransparentSaved()) {
             Mage::throwException(Mage::helper('payment')->__('Please select an option payment for eWay saved'));
         } elseif ($data->getMethod() == 'ewayrapid_notsaved' && !$data->getTransparentNotsaved()) {
             Mage::throwException(Mage::helper('payment')->__('Please select an option payment for eWay not saved'));
         }
         //New Token
         if ($data->getMethod() == 'ewayrapid_saved' && $data->getTransparentSaved() == Eway_Rapid31_Model_Config::PAYPAL_STANDARD_METHOD && $data->getSavedToken() == Eway_Rapid31_Model_Config::TOKEN_NEW && Mage::helper('ewayrapid/customer')->checkTokenListByType(Eway_Rapid31_Model_Config::PAYPAL_STANDARD_METHOD)) {
             Mage::throwException(Mage::helper('payment')->__('You could only save one PayPal account, please select PayPal account existed to payent.'));
         }
         if ($data->getTransparentNotsaved()) {
             Mage::getSingleton('core/session')->setTransparentNotsaved($data->getTransparentNotsaved());
         }
         if ($data->getTransparentSaved()) {
             Mage::getSingleton('core/session')->setTransparentSaved($data->getTransparentSaved());
         }
         if ($data->getMethod()) {
             Mage::getSingleton('core/session')->setMethod($data->getMethod());
         }
         if ($data->getSavedToken()) {
             Mage::getSingleton('core/session')->setSavedToken($data->getSavedToken());
             if (is_numeric($data->getSavedToken())) {
                 $token = Mage::helper('ewayrapid/customer')->getTokenById($data->getSavedToken());
                 /* @var Eway_Rapid31_Model_Request_Token $model */
                 $model = Mage::getModel('ewayrapid/request_token');
                 $type = $model->checkCardName($token);
                 Mage::getSingleton('core/session')->setTransparentSaved($type);
                 unset($model);
                 unset($token);
             }
         }
         $infoCard = new Varien_Object();
         Mage::getSingleton('core/session')->setInfoCard($infoCard->setCcType($data->getCcType())->setOwner($data->getCcOwner())->setLast4($this->_isClientSideEncrypted($data->getCcNumber()) ? 'encrypted' : substr($data->getCcNumber(), -4))->setCard($data->getCcNumber())->setNumber($data->getCcNumber())->setCid($data->getCcCid())->setExpMonth($data->getCcExpMonth())->setExpYear($data->getCcExpYear()));
     } else {
         $info->setCcType($data->getCcType())->setCcOwner($data->getCcOwner())->setCcLast4($this->_isClientSideEncrypted($data->getCcNumber()) ? 'encrypted' : substr($data->getCcNumber(), -4))->setCcNumber($data->getCcNumber())->setCcCid($data->getCcCid())->setCcExpMonth($data->getCcExpMonth())->setCcExpYear($data->getCcExpYear());
     }
     return $this;
 }