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; }
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"; }