12. Zend_Service_StrikeIron: Bundled Services

Zend_Service_StrikeIron comes with wrapper classes for three popular StrikeIron services.

12.1. ZIP Code Information

Zend_Service_StrikeIron_ZipCodeInfo provides a client for StrikeIron's Zip Code Information Service. For more information on this service, visit these StrikeIron resources:

The service contains a getZipCode() method that will retrieve information about a United States ZIP code or Canadian postal code:

$strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
                                                
'password' => 'your-password'));

// Get a client for the Zip Code Information service
$zipInfo $strikeIron->getService(array('class' => 'ZipCodeInfo'));

// Get the Zip information for 95014
$response $zipInfo->getZipCode(array('ZipCode' => 95014));
$zips $response->serviceResult;

// Display the results
if ($zips->count == 0) {
    echo 
'No results found';
} else {
    
// a result with one single zip code is returned as an object,
    // not an array with one element as one might expect.
    
if (! is_array($zips->zipCodes)) {
        
$zips->zipCodes = array($zips->zipCodes);
    }

    
// print all of the possible results
    
foreach ($zips->zipCodes as $z) {
        
$info $z->zipCodeInfo;

        
// show all properties
        
print_r($info);

        
// or just the city name
        
echo $info->preferredCityName;
    }
}

// Detailed status information
// http://www.strikeiron.com/exampledata/StrikeIronZipCodeInformation_v3.pdf
$status $response->serviceStatus;

12.2. U.S. Address Verification

Zend_Service_StrikeIron_USAddressVerification provides a client for StrikeIron's U.S. Address Verification Service. For more information on this service, visit these StrikeIron resources:

The service contains a verifyAddressUSA() method that will verify an address in the United States:

$strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
                                                
'password' => 'your-password'));

// Get a client for the Zip Code Information service
$verifier $strikeIron->getService(array('class' => 'USAddressVerification'));

// Address to verify.  Not all fields are required but
// supply as many as possible for the best results.
$address = array('firm'           => 'Zend Technologies',
                 
'addressLine1'   => '19200 Stevens Creek Blvd',
                 
'addressLine2'   => '',
                 
'city_state_zip' => 'Cupertino CA 95014');

// Verify the address
$result $verifier->verifyAddressUSA($address);

// Display the results
if ($result->addressErrorNumber != 0) {
    echo 
$result->addressErrorNumber;
    echo 
$result->addressErrorMessage;
} else {
    
// show all properties
    
print_r($result);

    
// or just the firm name
    
echo $result->firm;

    
// valid address?
    
$valid = ($result->valid == 'VALID');
}

12.3. Sales & Use Tax Basic

Zend_Service_StrikeIron_SalesUseTaxBasic provides a client for StrikeIron's Sales & Use Tax Basic service. For more information on this service, visit these StrikeIron resources:

The service contains two methods, getTaxRateUSA() and getTaxRateCanada(), that will retrieve sales and use tax data for the United States and Canada, respectively.

$strikeIron = new Zend_Service_StrikeIron(array('username' => 'your-username',
                                                
'password' => 'your-password'));

// Get a client for the Sales & Use Tax Basic service
$taxBasic $strikeIron->getService(array('class' => 'SalesUseTaxBasic'));

// Query tax rate for Ontario, Canada
$rateInfo $taxBasic->getTaxRateCanada(array('province' => 'foo'));
print_r($rateInfo);               // show all properties
echo $rateInfo->GST;              // or just the GST (Goods & Services Tax)

// Query tax rate for Cupertino, CA USA
$rateInfo $taxBasic->getTaxRateUS(array('zip_code' => 95014));
print_r($rateInfo);               // show all properties
echo $rateInfo->state_sales_tax;  // or just the state sales tax