Блог

Полезные статьи и новости о жизни WaveAccess

Валидация и корректировка адреса пользователя в США: интеграция с сервисом SmartyStreets

Зачастую, при создании интернет - ресурсов для предоставления товаров и услуг, разработчики сталкиваются с такой задачей как верификация адресов пользователей при заполнении контактной формы. Данная задача сводится к проверке достоверности введенного адреса, определению геокоординат и автозаполнению недостающих строк адреса. На сегодняшний день в Мире существуют различные сервисы для верификации адресов. В данной статье мы рассмотрим один из них – SmartyStreets – сервис для работы с адресами внутри США и с международными адресами.

 

Validation And Verification Addresses Integration With The Smarty Streets Service

 

Интеграция сервиса SmartyStreets

SmartyStreets – это международный сервис по верификации адресов, который предоставляет следующие возможности:

  • Валидация адреса, введенного пользователем (проверка на достоверность и полноту адреса);
  • Определение геокоординат (широты и долготы);
  • Поиск и определение адреса из произвольного текста;
  • Автозаполнение полей во время введения адреса.

На сегодняшний день SmartyStreets является одним из лидирующих решений для верификации адресов. Очевидные преимущества использования SmartyStreets для бизнеса - увеличение скорости доставки, снижение временных затрат на уточнение данных, уменьшение количества возвратов, повышение качества обслуживания клиентов. В отличие от конкурентов, SmartyStreets может верифицировать практически любой международный адрес (база адресов более 240 стран), работает быстрее -  способен обрабатывать до 1000 адресов в секунду и обеспечивает надежную бесперебойную работу сервиса.

 

Валидация и корректировка адреса в США

В качестве наглядного примера рассмотрим процесс интеграции сервиса SmartyStreets с платформой для поддержки функции валидации и корректировки введенного пользователем адреса в США.

Smartystreets -before -valid

  1. Регистрируемся на сайте smartystreets.com
  2. Получаем 2 поля для работы с сервисом: authId и authToken
  3. Создаем http запрос к сервису:
String requestUrl = “https://api.smartystreets.com/street-address
?street=3785+South+Las+Vegs+Av
&city=Los+Vegas
&state=NV
&auth-id=<AUTH_ID>
&auth-token=<AUTH_TOKEN>” 

try {
  HttpGet httpGet = new HttpGet( requestUrl );
  // Create a custom response handler
  ResponseHandler< String > responseHandler = new ResponseHandler< String >() {
    @Override
    public String handleResponse( final HttpResponse response ) throws ClientProtocolException, IOException {
      int status = response.getStatusLine().getStatusCode();
      if( status >= 200 && status < 300 ) {
        HttpEntity entity = response.getEntity();
        return entity != null ? EntityUtils.toString( entity ) : null;
      } else {
        throw new ClientProtocolException( "Unexpected response status: " + status + "(" + response.getStatusLine().getReasonPhrase() + ")" );
      }
    }
  };
  String responseBody = httpClient.execute( httpGet, responseHandler );
// oбработка результата  
} finally {
  httpClient.close();
}
  • Получаем (в качестве примера) следующий результат:
{
    "input_index": 0,
    "candidate_index": 0,
    "delivery_line_1": "3785 Las Vegas Blvd S",
    "last_line": "Las Vegas NV 89109-4333",
    "delivery_point_barcode": "891094333992",
    "components": {
        "primary_number": "3785",
        "street_name": "Las Vegas",
        "street_postdirection": "S",
        "street_suffix": "Blvd",
        "city_name": "Las Vegas",
        "state_abbreviation": "NV",
        "zipcode": "89109",
        "plus4_code": "4333",
        "delivery_point": "99",
        "delivery_point_check_digit": "2"
    },
    "metadata": {
        "record_type": "H",
        "zip_type": "Standard",
        "county_fips": "32003",
        "county_name": "Clark",
        "carrier_route": "C024",
        "congressional_district": "01",
        "building_default_indicator": "Y",
        "rdi": "Commercial",
        "elot_sequence": "0119",
        "elot_sort": "A",
        "latitude": 36.10363,
        "longitude": -115.17237,
        "precision": "Zip9",
        "time_zone": "Pacific",
        "utc_offset": -8,
        "dst": true
    },
    "analysis": {
        "dpv_match_code": "D",
        "dpv_footnotes": "AAN1",
        "dpv_cmra": "N",
        "dpv_vacant": "N",
        "active": "Y",
        "footnotes": "A#B#H#L#M#"
    }

Мы видим, что полученный результат состоит из следующих пунктов:

  • компоненты адреса;
  • metadata, включающая latitude longitude;
  • результаты обработки запроса: насколько точно удалось найти адрес, какие компоненты были скорректированы.

Smartystreets -after -valid

Полученные данные можно сохранить в базе данных и использовать для дальнейшей работы с сервисом.

 

Заключение

Как мы видим из данного примера, SmartyStreets предоставляет удобный API для поиска и валидации адресов как внутри США, так и во всем мире. Кроме того, сервис предлагает воспользоваться пакетом бесплатных операций в течение месяца, чтобы убедиться в его эффективности.

Официальный сайт SmartyStreets: https://smartystreets.com


Если в текущем проекте перед Вами стоит задача по внедрению сервиса или технологии по валидации и корректировке адреса пользователя, напишите нам на hello@wave-access.com

Заказать звонок

Удобное время:

Отменить

Пишите!

Присоединить
Файл не больше 30 Мб.
Отменить