Создание логики проверки

В этом документе описывается процесс создания системы проверки адресов, которая может обрабатывать различные ответы от Address Validation API. Вы узнаете, как правильно использовать ответ, изучать другие сигналы от API, а также когда и как запрашивать у клиентов дополнительную информацию.

В целом ответ API определяет, как ваша система должна обрабатывать адрес:

  • Исправить – адрес низкого качества. Запросите дополнительную информацию.
  • Подтвердить – адрес высокого качества, но отличается от введенного. Вы можете запросить подтверждение.
  • Принять – адрес высокого качества. Вы можете принять предложенный адрес.

Основная цель

В этом документе рассказывается, как изменить систему, чтобы лучше анализировать ответы API и определять, что делать с предоставленными адресами. Ниже приведен пример псевдокода.

if (the API response indicates significant problems in the address)
    FIX - prompt the user to fix the address
else if (the API response indicates less significant problems in the address)
    CONFIRM - confirm with the user that the address is correct
else
    ACCEPT - continue with the address returned by the API.

Точная логика зависит от вашей ситуации. Подробную информацию вы найдете в руководстве по реализации. Вы также можете использовать нашу реализацию этой логики с открытым исходным кодом, которая находится в расширенной библиотеке компонентов.

Обзор рабочего процесса

В таблице ниже приведены два действия для вашей системы:

  1. Рабочий процесс, основанный на исправлении, подтверждении и принятии.
  2. Первые сигналы, которые нужно проверить в ответе. Описанные здесь сигналы поступают из свойства verdict. Это не единственные сигналы, которые нужно проверять, но они дают первоначальное представление о качестве адреса. Каждому типу поведения соответствует раздел в этом документе, в котором описываются дополнительные сигналы, которые вам также может потребоваться исследовать.
Поведение системы
Исправить адрес

Ответ от verdict указывает на отсутствие важной информации, которую необходимо предоставить. Адрес, возвращенный API, может быть некачественным.

Рабочий процесс

  1. При необходимости изучите компоненты адреса.
  2. Попросите клиента исправить адрес.
  3. Запросите проверку обновленного адреса.
  4. Продолжить с адресом.

Сигналы оценки

Выполняется любое из следующих условий:

Подтвердить адрес

Ответ от verdict указывает на то, что адрес существует, но в исходные данные были внесены изменения: исправлены ошибки или добавлены подтвержденные данные.

Рабочий процесс

  1. Что нужно исправить:
    1. При необходимости изучите компоненты адреса.
    2. Запросите проверку обновленного адреса.
    3. Продолжить с адресом.
  2. Исправления не требуются:
  3. Продолжить с адресом.

Сигналы оценки

Выполняются все следующие условия:

Принять адрес

Ответ Address Validation API указывает на отличное качество адреса.

Рабочий процесс

Продолжить с возвращенным адресом.

Сигналы оценки

Выполняются все следующие условия:

  • validationGranularity содержит PREMISE или лучше.
  • addressComplete – true.
  • Нет предполагаемых или замененных компонентов.

Советы по размещению рекламы

При разработке системы реагирования на сигналы Address Validation следующие рекомендации помогут вам создать более эффективную модель реагирования. Однако это лишь рекомендации, и вы можете выбрать другой вариант, который лучше подходит для вашей бизнес-модели.

Рекомендации Подробнее…
Уровень риска

Принимая решение о том, стоит ли предлагать исправления или принять адрес в том виде, в котором он был введен, учитывайте уровень допустимости для вашей ситуации.

Address Validation API возвращает различные сигналы, которые вы можете использовать вместе с уровнем риска, чтобы оптимизировать процесс проверки.

Например, если в адресе не подтвержден номер дома, вы все равно можете принять его. Если же для вашей коммерческой деятельности требуется более точный адрес, вы можете запросить его у пользователя. Пример, который может относиться к любой из этих категорий, приведен в разделе Неподтвержденный номер дома за пределами США статьи Примеры принятия адресов.

Принять адреса

Рекомендуется настроить систему так, чтобы она принимала исходный вариант, если клиент не отвечает на подсказки.

В таких случаях клиент мог ввести адрес, которого нет в системе, например адрес нового здания.

Исправить адрес

Исправьте адрес, если результаты явно указывают на то, что он недействителен. В этом случае ваша система может предложить клиенту предоставить необходимую информацию, после чего вы повторно запустите рабочий процесс, чтобы получить адрес доставки.

Исправить сигналы

Address Validation API предоставляет ряд сигналов, позволяющих узнать, нужно ли исправить адрес.

1. Детализация проверки и отсутствующие компоненты

О проблемах с адресом свидетельствуют два основных сигнала:

  • Если поле validationGranularity имеет значение OTHER, ваша система должна проанализировать сигналы компонентов адреса, чтобы узнать больше о том, где произошла ошибка и как ее исправить.
  • Если обработанный объект address возвращает поле missingComponentTypes, ваша система должна проверить этот компонент. Если в адресе отсутствуют какие-либо компоненты, он считается неполным и доставка по нему невозможна.

2. Другие сигналы

Address Validation API также предоставляет другие сигналы, помогающие диагностировать конкретные проблемы:

Подозрительные компоненты Если для компонента возвращается значение перечисления уровня подтверждения UNCOMFIRMED_AND_SUSPICIOUS, скорее всего, он указан неверно.
Неразрешенный компонент unresolvedToken – часть входных данных, которая не распознана как действительная часть адреса.

3. Сигналы адресов в США

Некоторые поля, применимые только к адресам в США, содержат полезный сигнал о том, что адрес не может быть доставлен и должен быть исправлен. Для адреса, который требует исправления, вы должны увидеть следующее:

dpvConfirmation N, D или пустое значение.

Подробнее о dpvConfirmation читайте в статье Как обрабатывать адреса в США.

Примеры адресов

Как подтвердить адрес

Подтверждение адреса требуется, если в заключении указано, что Address Validation API вывел или изменил компоненты адреса, чтобы получить подтвержденный адрес. В таких случаях у вас есть адрес, на который можно доставить посылку, но вы хотите быть уверены, что он совпадает с тем, который указал клиент.

Чтобы предоставить клиенту правильную подсказку, ваша логика должна идентифицировать компоненты, помеченные сервисом, и определить, какое действие или пометку API применил к компоненту, например inferred, replaced или spellCorrected. Подробную информацию вы найдете в разделе AddressComponent справочника.

Подтвердить сигналы

Address Validation API предоставляет ряд сигналов, позволяющих определить, нужно ли подтверждать адрес.

1. Детализация проверки

Допустимо значение validationGranularity, равное ROUTE или выше, но PREMISE или SUBPREMISE обеспечивают более надежную доставку.

2. Другие сигналы

Если вы решите подтвердить адрес у клиента, вердикт также предоставит следующие данные, чтобы определить, какие компоненты следует проверить:

Предполагаемые данные Если поле hasInferredComponents имеет значение true, это означает, что API заполнил информацию, полученную из других компонентов адреса.
Замененные данные Если поле hasReplacedComponents имеет значение true, API заменяет введенные данные на те, которые считает правильными.

3. Сигналы адресов в США

Некоторые поля, применимые только к адресам в США, указывают на то, что ваша логика должна подтверждать данные у клиента. Выполняется одно из следующих условий:

dpvConfirmation S

Подробные сведения о dpvConfirmation приведены в разделе Обработка адресов в США.

Ответ на адрес Содержит поле missingComponentTypes со значением subpremise.

Примеры адресов

Как принять адрес

Вы принимаете адрес, если вердикт дает высокую степень уверенности в том, что адрес является доставляемым и может использоваться без дальнейшего взаимодействия с клиентом в последующем процессе.

Принимать сигналы

Address Validation API предоставляет ряд сигналов, позволяющих определить, нужно ли подтверждать адрес.

1. Детализация проверки

Значение validationGranularity, равное PREMISE или выше, считается приемлемым, но в некоторых случаях значение ROUTE также указывает на то, что адрес существует.

2. Другие сигналы

Для адреса высокого качества также должны быть указаны следующие данные:

  • Данные не заменяются. В этом случае hasReplacedComponents: FALSE.
  • Нет предполагаемых компонентов. В этом случае hasInferredComponents: FALSE.

3. Сигналы адресов в США

Некоторые поля, применимые только к адресам в США, указывают на высокое качество адреса, по которому можно доставить посылку. Для допустимого адреса в США вы должны увидеть следующее:

dpvConfirmation Y

Подробнее о dpvConfirmation написано в статье Как работать с адресами в США.

Примеры адресов