/**
  * Adopt specified address object to be compatible with Magento
  *
  * @param Varien_Object $address
  */
 protected function _applyStreetAndRegionWorkarounds(Varien_Object $address)
 {
     // merge street addresses into 1
     if ($address->hasStreet2()) {
         $address->setStreet(implode("\n", array($address->getStreet(), $address->getStreet2())));
         $address->unsStreet2();
     }
     // attempt to fetch region_id from directory
     if ($address->getCountryId() && $address->getRegion()) {
         $regions = Mage::getModel('directory/country')->loadByCode($address->getCountryId())->getRegionCollection()->addRegionCodeOrNameFilter($address->getRegion())->setPageSize(1);
         foreach ($regions as $region) {
             $address->setRegionId($region->getId());
             $address->setExportedKeys(array_merge($address->getExportedKeys(), array('region_id')));
             break;
         }
     }
 }
Example #2
0
 /**
  * Create new AccessCode
  * @param Varien_Object $billing
  * @param Varien_Object $infoInstance
  * @param string $method
  * @param null $request
  * @return Eway_Rapid31_Model_Response
  */
 public function createAccessCode(Varien_Object $billing, Varien_Object $infoInstance, $method = 'AccessCodes', $request = null)
 {
     // Empty Varien_Object's data
     $tokenCustomerID = $request->get('TokenCustomerID');
     $this->unsetData();
     $customerParam = Mage::getModel('ewayrapid/field_customer');
     $customerParam->setTokenCustomerID($tokenCustomerID)->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())->setComments('')->setFax($billing->getFax())->setUrl('');
     $returnUrl = Mage::getBaseUrl() . '/ewayrapid/mycards/saveToken?ccType=' . $infoInstance->getCcType() . '&expYear=' . $infoInstance->getCcExpYear();
     if ($request->get('is_default') == 'on') {
         $returnUrl .= '&is_default=on';
     }
     if ($infoInstance->getCcStartMonth()) {
         $returnUrl .= '&startMonth=' . $infoInstance->getCcStartMonth();
     }
     if ($infoInstance->getCcStartYear()) {
         $returnUrl .= '&startYear=' . $infoInstance->getCcStartYear();
     }
     if ($infoInstance->getCcIssueNumber()) {
         $returnUrl .= '&issueNumber=' . $infoInstance->getCcIssueNumber();
     }
     // Binding address on url param
     $returnUrl .= '&street1=' . base64_encode($billing->getStreet1()) . '&street2=' . base64_encode($billing->getStreet2());
     $tokenId = $request->get('token_id');
     if (!empty($tokenId)) {
         // ID token customer will be defined to update
         $returnUrl = $returnUrl . '&token_id=' . $tokenId;
     }
     $this->setCustomer($customerParam);
     $this->setRedirectUrl($returnUrl);
     $this->setCancelUrl($returnUrl);
     $this->setMethod(!empty($tokenCustomerID) ? 'UpdateTokenCustomer' : 'CreateTokenCustomer');
     $this->setCustomerIP($_SERVER["REMOTE_ADDR"]);
     $this->setDeviceID('');
     $this->setTransactionType("Purchase");
     $this->setCustomerReadOnly(true);
     // Create new access code
     //$formMethod = !empty($tokenCustomerID) ? 'PUT' : 'POST';
     $response = $this->_doRapidAPI($method);
     return $response;
 }