Example #1
0
 /**
  * Update eWAY token customer record.
  *
  * @param Varien_Object $paymentData
  * @param Varien_Object $storedData
  * @return bool
  */
 public function updateCustomer($paymentData, $storedData = null)
 {
     $soapMethod = Fontis_EwayAu_Model_Token_Request::UPDATE_CUSTOMER;
     $data = $this->getRequestData($soapMethod, $paymentData);
     if (isset($storedData)) {
         $newCustomerData = $data->getUpdateCustomerArray();
         $cardExpired = true;
         if (isset($newCustomerData['CCExpiryMonth']) && isset($newCustomerData['CCExpiryYear'])) {
             $cardExpired = $this->getTokenHelper()->hasCreditCardExpired($newCustomerData['CCExpiryMonth'], $newCustomerData['CCExpiryYear']);
             unset($newCustomerData['CCExpiryMonth']);
             unset($newCustomerData['CCExpiryYear']);
         }
         if (!$cardExpired) {
             $changeFound = false;
             $usedFields = $data->getUsedCustomerFields();
             foreach ($usedFields as $field) {
                 $storedDataField = $storedData->__get($field);
                 if (!isset($newCustomerData[$field]) && !empty($storedDataField)) {
                     $changeFound = true;
                     break;
                 } elseif ($field == 'CCNumber' && $this->getTokenHelper()->hasCreditCardNumberChanged($newCustomerData[$field], $storedDataField)) {
                     $changeFound = true;
                     break;
                 } elseif ($newCustomerData[$field] != $storedDataField) {
                     $changeFound = true;
                     break;
                 }
             }
             if ($changeFound === false) {
                 return false;
             }
         }
     }
     $response = $this->getRequest()->execute($soapMethod, $data->getUpdateCustomerArray());
     if ($response instanceof Fontis_EwayAu_Model_Token_Response) {
         $response->process();
     }
     return $response->isRequestSuccessful();
 }