AddressVerification
![Software License][ico-license]
, (*1)
Upgrading from version 1.x
The following changes happened between 1.x and 2.0:, (*2)
- The config information is not added to the
config/services.php
file instead of having its own file
- The package now throws exceptions and events instead of expecting you to handle it.
How to use
A Laravel Service that uses intelligentsearch.com to validate mailing addresses., (*3)
This class sends an address to https://www.intelligentsearch.com/ via their API and updates the address with the most relevant result. It is built to run within Laravel., (*4)
Note that in its current state it does not return multiple results., (*5)
To install:
composer require jdavidbakr/address-verification
The package is auto-discovered in Laravel., (*6)
Add the following section to config/services.php
:, (*7)
'intelligentsearch'=>[
'username'=>env('INTELLIGENTSEARCH_USERNAME'),
'password'=>env('INTELLIGENTSEARCH_PASSWORD'),
'cache_time'=>90, // in days. Set to 0 to have no cache.
],
There will be a file now located at config/address-verification.php to set your intelligentsearch.com username and password., (*8)
To use:
Create an object of type \jdavidbakr\AddressVerification\AddressRequest and fill in the appropriate values. Then call \jdavidbakr\AddressVerification\AddressVerificationService::Verify(\$request) with the cerated request. You will receive back an object of type \jdavidbakr\AddressVerification\AddressVerificationResponse., (*9)
$request = new \jdavidbakr\AddressVerification\AddressRequest;
$request->delivery_line_1 = '1600 Pennsylvania Ave NW';
$request->city_state_zip = 'Washington DC 20500';
try {
$result = \jdavidbakr\AddressVerification\AddressVerificationService::Verify($request);
// Alternatively use the facade:
$result = AddressVerification::Verify($request);
} catch(\jdavidbakr\AddressVerification\VerificationFailedException $e) {
// Handle what to do if the verification failed
}
The request defaults to ca_codes of McRy which returns mixed case and enables street address parsing for no-match addresses., (*10)
You will receive an AddressResponse
object if successful. The main properties you'll likely use in the response are:, (*11)
- DeliveryLine1
- City
- State
- ZipAddon
Exceptions
The following exceptions can be thrown (all namespaced to the package):, (*12)
-
VerificationFailedException
- you should watch for this exception and decide how to handle it. Basically it means that you are not getting any data from the response.
-
MissingIntelligentSearchCredentialsException
- Fired if you haven't included credentials.
Events
-
AddressVerificationCompleted
- this is an event that is fired every time an address verification is completed. Use it to check the SearchesLeft
attribute, if you want to send a notification that it's running low. It receives in its payload the AddressResponse
.
public function handle($event)
{
$searchesLeft = $event->response->SearchesLeft;
if($searchesLeft < 1000) {
Bugsnag::notifyError('LowIntelligentSearchQueries', 'IntelligentSearch queries are low', function($report) use($searchesLeft) {
$report->setSeverity('warning');
$report->setMetaData([
'remaining'=>$searchesLeft
]);
});
}
}
View the IntelligentSearch documentation for details about what all the returned fields are, as well as the request attributes., (*13)