Beispiel #1
0
 private function fillValidateAvalaraAddress($calc, $vmadd)
 {
     if (!empty($vmadd)) {
         if (is_object($vmadd)) {
             $vmadd = get_object_vars($vmadd);
         }
         if (is_object($calc)) {
             $calc = get_object_vars($calc);
         }
         //avadebug('my $vmadd',$vmadd);
         //First country check
         if (empty($vmadd['virtuemart_country_id'])) {
             self::$validatedAddresses = FALSE;
             return self::$validatedAddresses;
         } else {
             if (empty($calc['avatax_virtuemart_country_id'])) {
                 vmError('AvaTax, please select countries, to validate. Use fallback for USA and Canada');
                 //But lets use a fallback
                 $calc['avatax_virtuemart_country_id'] = array('223', '38');
                 //For USA and Canada
             }
             if (!is_array($calc['avatax_virtuemart_country_id'])) {
                 //Suppress Warning
                 $calc['avatax_virtuemart_country_id'] = json_decode($calc['avatax_virtuemart_country_id'], true);
             }
             if (!in_array($vmadd['virtuemart_country_id'], $calc['avatax_virtuemart_country_id'])) {
                 avadebug('fillValidateAvalaraAddress not validated, country not set', $vmadd['virtuemart_country_id'], $calc['avatax_virtuemart_country_id']);
                 self::$validatedAddresses = FALSE;
                 return self::$validatedAddresses;
             }
         }
         if (!class_exists('Address')) {
             require VMAVALARA_CLASS_PATH . DS . 'Address.class.php';
         }
         $address = new Address();
         if (isset($vmadd['address_1'])) {
             $address->setLine1($vmadd['address_1']);
         }
         if (isset($vmadd['address_2'])) {
             $address->setLine2($vmadd['address_2']);
         }
         if (isset($vmadd['city'])) {
             $address->setCity($vmadd['city']);
         }
         if (isset($vmadd['virtuemart_country_id'])) {
             $vmadd['country'] = ShopFunctions::getCountryByID($vmadd['virtuemart_country_id'], 'country_2_code');
             if (isset($vmadd['country'])) {
                 $address->setCountry($vmadd['country']);
             }
         }
         if (isset($vmadd['virtuemart_state_id'])) {
             $vmadd['state'] = ShopFunctions::getStateByID($vmadd['virtuemart_state_id'], 'state_2_code');
             if (isset($vmadd['state'])) {
                 $address->setRegion($vmadd['state']);
             }
         }
         if (isset($vmadd['zip'])) {
             $address->setPostalCode($vmadd['zip']);
         }
         $hash = md5(implode($vmadd, ','));
         $session = JFactory::getSession();
         $validatedAddress = $session->get('vm_avatax_address_checked.' . $hash, FALSE, 'vm');
         if (!$validatedAddress) {
             $config = $this->newATConfig($calc);
             if (!class_exists('AddressServiceSoap')) {
                 require VMAVALARA_CLASS_PATH . DS . 'AddressServiceSoap.class.php';
             }
             $client = new AddressServiceSoap($this->_connectionType, $config);
             if (!class_exists('SeverityLevel')) {
                 require VMAVALARA_CLASS_PATH . DS . 'SeverityLevel.class.php';
             }
             if (!class_exists('Message')) {
                 require VMAVALARA_CLASS_PATH . DS . 'Message.class.php';
             }
             //if($calc->vAddress==0){
             /*	if(isset($vmadd['country']) and $vmadd['country']!= 'US' and $vmadd['country']!= 'CA'){
             
             					self::$validatedAddresses = array($address);
             					return self::$validatedAddresses;
             				}*/
             $address->Coordinates = 1;
             $address->Taxability = TRUE;
             $textCase = TextCase::$Mixed;
             $coordinates = 1;
             if (!class_exists('ValidateResult')) {
                 require VMAVALARA_CLASS_PATH . DS . 'ValidateResult.class.php';
             }
             if (!class_exists('ValidateRequest')) {
                 require VMAVALARA_CLASS_PATH . DS . 'ValidateRequest.class.php';
             }
             if (!class_exists('ValidAddress')) {
                 require VMAVALARA_CLASS_PATH . DS . 'ValidAddress.class.php';
             }
             //TODO add customer code //shopper_number
             try {
                 $request = new ValidateRequest($address, $textCase ? $textCase : TextCase::$Default, $coordinates);
                 vmSetStartTime('avaValAd');
                 //avadebug('my request for validate address ',$request);
                 $result = $client->Validate($request);
                 vmTime('Avatax validate Address', 'avaValAd');
                 //avadebug('Validate ResultCode is: '. $result->getResultCode());;
                 if ($result->getResultCode() != SeverityLevel::$Success) {
                     foreach ($result->getMessages() as $msg) {
                         avadebug('fillValidateAvalaraAddress ' . $msg->getName() . ": " . $msg->getSummary() . "\n");
                     }
                 } else {
                     self::$validatedAddresses = $result->getvalidAddresses();
                     $session->set('vm_avatax_address_checked.' . $hash, TRUE, 'vm');
                 }
             } catch (SoapFault $exception) {
                 $msg = "Exception: fillValidateAvalaraAddress ";
                 if ($exception) {
                     $msg .= $exception->faultstring;
                 }
                 $msg .= "\n";
                 $msg .= $client->__getLastRequest() . "\n";
                 $msg .= $client->__getLastResponse() . "\n";
                 vmError($msg);
             }
         } else {
             self::$validatedAddresses[] = $address;
         }
         //then for BT and/or $cart->STsameAsBT
     }
     if (empty(self::$validatedAddresses)) {
         self::$validatedAddresses = FALSE;
     }
     return self::$validatedAddresses;
 }
<?php

require '../../AvaTax4PHP/AvaTax.php';
// include in all Avalara Scripts
require '../Credentials.php';
// where service URL, account, license key are set
$client = new AddressServiceSoap('Development');
$STDIN = fopen('php://stdin', 'r');
try {
    $address = new Address();
    // Get The address from the user via keyboard input
    echo "Address Line 1: ";
    $input = rtrim(fgets($STDIN));
    $address->setLine1($input);
    echo "Address Line 2: ";
    $input = rtrim(fgets($STDIN));
    $address->setLine2($input);
    echo "Address Line 3: ";
    $input = rtrim(fgets($STDIN));
    $address->setLine3($input);
    echo "City: ";
    $input = rtrim(fgets($STDIN));
    $address->setCity($input);
    echo "State/Province: ";
    $input = rtrim(fgets($STDIN));
    $address->setRegion($input);
    echo "Postal Code: ";
    $input = rtrim(fgets($STDIN));
    $address->setPostalCode($input);
    $textCase = TextCase::$Mixed;
    $coordinates = 1;
<?php

require '../../AvaTax4PHP/AvaTax.php';
// include in all Avalara Scripts
require '../Credentials.php';
// where service URL, account, license key are set
$client = new AddressServiceSoap('Development');
try {
    $result = $client->ping("");
    echo 'Ping ResultCode is: ' . $result->getResultCode() . "\n";
    if ($result->getResultCode() != SeverityLevel::$Success) {
        foreach ($result->Messages() as $msg) {
            echo $msg->Name() . ": " . $msg->Summary() . "\n";
        }
    } else {
        echo 'Ping Version is: ' . $result->getVersion() . "\n\n";
    }
} catch (SoapFault $exception) {
    $msg = "Exception: ";
    if ($exception) {
        $msg .= $exception->faultstring;
    }
    echo $msg . "\n";
    echo $client->__getLastRequest() . "\n";
    echo $client->__getLastResponse() . "\n";
}
 /**
  * @brief Validates a given address
  */
 public function validateAddress(Address $address)
 {
     $this->_connectToAvalara();
     $client = new AddressServiceSoap(Configuration::get('AVALARATAX_MODE'));
     if (!empty($address->id_state)) {
         $state = new State((int) $address->id_state);
     }
     if (!empty($address->id_country)) {
         $country = new Country((int) $address->id_country);
     }
     $avalaraAddress = new AvalaraAddress($address->address1, $address->address2, null, $address->city, isset($state) ? $state->iso_code : null, $address->postcode, isset($country) ? $country->iso_code : null, 0);
     $buffer = array();
     try {
         $request = new ValidateRequest($avalaraAddress, TextCase::$Upper, false);
         $result = $client->Validate($request);
         $addresses = $result->ValidAddresses;
         $buffer['ResultCode'] = Tools::safeOutput($result->getResultCode());
         if ($result->getResultCode() != SeverityLevel::$Success) {
             foreach ($result->getMessages() as $msg) {
                 $buffer['Messages']['Name'][] = Tools::safeOutput($msg->getName());
                 $buffer['Messages']['Summary'][] = Tools::safeOutput($msg->getSummary());
             }
         } else {
             foreach ($result->getvalidAddresses() as $valid) {
                 $buffer['Normalized']['Line1'] = Tools::safeOutput($valid->getline1());
                 $buffer['Normalized']['Line2'] = Tools::safeOutput($valid->getline2());
                 $buffer['Normalized']['City'] = Tools::safeOutput($valid->getcity());
                 $buffer['Normalized']['Region'] = Tools::safeOutput($valid->getregion());
                 $buffer['Normalized']['PostalCode'] = Tools::safeOutput($valid->getpostalCode());
                 $buffer['Normalized']['Country'] = Tools::safeOutput($valid->getcountry());
                 $buffer['Normalized']['County'] = Tools::safeOutput($valid->getcounty());
                 $buffer['Normalized']['FIPS'] = Tools::safeOutput($valid->getfipsCode());
                 $buffer['Normalized']['PostNet'] = Tools::safeOutput($valid->getpostNet());
                 $buffer['Normalized']['CarrierRoute'] = Tools::safeOutput($valid->getcarrierRoute());
                 $buffer['Normalized']['AddressType'] = Tools::safeOutput($valid->getaddressType());
             }
         }
     } catch (SoapFault $exception) {
         $buffer['Exception']['FaultString'] = Tools::safeOutput($exception->faultstring);
         $buffer['Exception']['LastRequest'] = Tools::safeOutput($client->__getLastRequest());
         $buffer['Exception']['LastResponse'] = Tools::safeOutput($client->__getLastResponse());
     }
     return $buffer;
 }
Beispiel #5
0
 private function fillValidateAvalaraAddress($calc)
 {
     if (!isset(self::$validatedAddresses)) {
         $vmadd = $this->getShopperData();
         if (!empty($vmadd)) {
             $config = $this->newATConfig($calc);
             if (!class_exists('AddressServiceSoap')) {
                 require VMAVALARA_CLASS_PATH . DS . 'AddressServiceSoap.class.php';
             }
             $client = new AddressServiceSoap('Development', $config);
             if (!class_exists('Address')) {
                 require VMAVALARA_CLASS_PATH . DS . 'Address.class.php';
             }
             $address = new Address();
             if (isset($vmadd['address_1'])) {
                 $address->setLine1($vmadd['address_1']);
             }
             if (isset($vmadd['address_2'])) {
                 $address->setLine2($vmadd['address_2']);
             }
             if (isset($vmadd['city'])) {
                 $address->setCity($vmadd['city']);
             }
             if (isset($vmadd['virtuemart_country_id'])) {
                 $vmadd['country'] = ShopFunctions::getCountryByID($vmadd['virtuemart_country_id'], 'country_2_code');
                 if (isset($vmadd['country'])) {
                     $address->setCountry($vmadd['country']);
                 }
             }
             if (isset($vmadd['virtuemart_state_id'])) {
                 $vmadd['state'] = ShopFunctions::getStateByID($vmadd['virtuemart_state_id'], 'state_2_code');
                 if (isset($vmadd['state'])) {
                     $address->setRegion($vmadd['state']);
                 }
             }
             if (isset($vmadd['zip'])) {
                 $address->setPostalCode($vmadd['zip']);
             }
             if (!class_exists('SeverityLevel')) {
                 require VMAVALARA_CLASS_PATH . DS . 'SeverityLevel.class.php';
             }
             if (!class_exists('Message')) {
                 require VMAVALARA_CLASS_PATH . DS . 'Message.class.php';
             }
             //if($calc->vAddress==0){
             if (isset($vmadd['country']) and $vmadd['country'] != 'US' and $vmadd['country'] != 'CA') {
                 self::$validatedAddresses = array($address);
                 return self::$validatedAddresses;
             }
             $address->Coordinates = 1;
             $address->Taxability = TRUE;
             $textCase = TextCase::$Mixed;
             $coordinates = 1;
             if (!class_exists('ValidateResult')) {
                 require VMAVALARA_CLASS_PATH . DS . 'ValidateResult.class.php';
             }
             if (!class_exists('ValidateRequest')) {
                 require VMAVALARA_CLASS_PATH . DS . 'ValidateRequest.class.php';
             }
             if (!class_exists('ValidAddress')) {
                 require VMAVALARA_CLASS_PATH . DS . 'ValidAddress.class.php';
             }
             try {
                 $request = new ValidateRequest($address, $textCase ? $textCase : TextCase::$Default, $coordinates);
                 $result = $client->Validate($request);
                 //vmdebug('Validate ResultCode is: '. $result->getResultCode());;
                 if ($result->getResultCode() != SeverityLevel::$Success) {
                     foreach ($result->getMessages() as $msg) {
                         vmdebug('fillValidateAvalaraAddress ' . $msg->getName() . ": " . $msg->getSummary() . "\n");
                         //vmdebug('fillValidateAvalaraAddress ERROR',$address);
                     }
                 } else {
                     self::$validatedAddresses = $result->getvalidAddresses();
                     /*	$echo = "";
                     			foreach($result->getvalidAddresses() as $valid)
                     			{
                     				$echo .= "Line 1: ".$valid->getline1()."\n";
                     				$echo .=  "Line 2: ".$valid->getline2()."\n";
                     				$echo .=  "Line 3: ".$valid->getline3()."\n";
                     				$echo .=  "Line 4: ".$valid->getline4()."\n";
                     				$echo .=  "City: ".$valid->getcity()."\n";
                     				$echo .=  "Region: ".$valid->getregion()."\n";
                     				$echo .=  "Postal Code: ".$valid->getpostalCode()."\n";
                     				$echo .=  "Country: ".$valid->getcountry()."\n";
                     				$echo .=  "County: ".$valid->getcounty()."\n";
                     				$echo .=  "FIPS Code: ".$valid->getfipsCode()."\n";
                     				$echo .=  "PostNet: ".$valid->getpostNet()."\n";
                     				$echo .=  "Carrier Route: ".$valid->getcarrierRoute()."\n";
                     				$echo .=  "Address Type: ".$valid->getaddressType()."\n";
                     				if($coordinates == 1)
                     				{
                     					$echo .=  "Latitude: ".$valid->getlatitude()."\n";
                     					$echo .=  "Longitude: ".$valid->getlongitude()."\n";
                     				}
                     			}
                     			//vmdebug('Normalized Address:',$echo);*/
                 }
             } catch (SoapFault $exception) {
                 $msg = "Exception: ";
                 if ($exception) {
                     $msg .= $exception->faultstring;
                 }
                 $msg .= "\n";
                 $msg .= $client->__getLastRequest() . "\n";
                 $msg .= $client->__getLastResponse() . "\n";
                 vmError($msg);
             }
             if (empty(self::$validatedAddresses)) {
                 self::$validatedAddresses = FALSE;
             }
             //then for BT and/or $cart->STsameAsBT
         } else {
             self::$validatedAddresses = FALSE;
         }
         //vmdebug("Number of addresses fillValidateAvalaraAddress is ", self::$validatedAddresses);
     }
     return self::$validatedAddresses;
 }
<?php

require '../../AvaTax4PHP/AvaTax.php';
// include in all Avalara Scripts
require '../Credentials.php';
// where service URL, account, license key are set
$client = new AddressServiceSoap('Development');
try {
    $result = $client->isAuthorized("Validate");
    echo 'IsAuthorized ResultCode is: ' . $result->getResultCode() . "\n";
    if ($result->getResultCode() != SeverityLevel::$Success) {
        echo "isAuthorized(\"Validate\") failed\n";
        foreach ($result->getMessages() as $msg) {
            echo $msg->getName() . ": " . $msg->getSummary() . "\n";
        }
    } else {
        echo "isAuthorized succeeded\n";
        echo 'Expiration: ' . $result->getexpires() . "\n\n";
    }
} catch (SoapFault $exception) {
    $msg = "Exception: ";
    if ($exception) {
        $msg .= $exception->faultstring;
    }
    echo $msg . "\n";
    echo $client->__getLastRequest() . "\n";
    echo $client->__getLastResponse() . "\n";
}