Xây dựng logic xác thực

Tài liệu này mô tả quy trình xây dựng một hệ thống kiểm tra địa chỉ để xử lý nhiều phản hồi từ Address Validation API. Tài liệu này trình bày cách diễn giải phản hồi của API để xác định thời điểm và cách nhắc khách hàng cung cấp thêm thông tin.

Nhìn chung, phản hồi API xác định các cách sau đây mà hệ thống của bạn sẽ xử lý địa chỉ:

  • Khắc phục – địa chỉ có thể chứa các vấn đề đáng kể.
    Hãy cân nhắc việc nhắc khách hàng cung cấp thêm thông tin.
  • Thêm địa điểm phụ – địa chỉ có thể thiếu một địa điểm phụ.
    Hãy cân nhắc việc nhắc khách hàng thêm số lượng đơn vị.
  • Xác nhận – địa chỉ có thể có một số vấn đề nhỏ.
    Hãy cân nhắc nhắc khách hàng xác nhận địa chỉ là chính xác.
  • Chấp nhận – địa chỉ có thể không có vấn đề.
    Bạn có thể cân nhắc sử dụng địa chỉ này mà không cần nhắc thêm, tuy nhiên bạn phải tự chịu rủi ro.

Mục đích chính

Tài liệu này giúp bạn sửa đổi hệ thống để phân tích phản hồi API một cách hiệu quả nhất và xác định các hành động tiếp theo cần thực hiện với địa chỉ được cung cấp. Mã giả lập sau đây minh hoạ một luồng có thể xảy ra.

if (verdict.possibleNextAction == FIX)
    Prompt the user to fix the address.
else if (verdict.possibleNextAction == CONFIRM_ADD_SUBPREMISES)
    Prompt the user to add a unit number.
else if (verdict.possibleNextAction == CONFIRM)
    Confirm with the user that the address is correct.
else
    Continue with the address returned by the API.

Logic chính xác phụ thuộc vào trường hợp của bạn – hãy xem phần Tuỳ chỉnh logic xác thực để biết thêm thông tin chi tiết.

Quy trình công việc có thể xảy ra

Bảng dưới đây tóm tắt các quy trình công việc có thể triển khai để nhắc khách hàng dựa trên phản hồi của API.

Hành vi của hệ thống
Sửa địa chỉ

Phản hồi từ verdict cho biết có thể có vấn đề đáng kể với địa chỉ. Ví dụ: verdict.possibleNextActionFIX. Hãy cân nhắc nhắc khách hàng cung cấp thêm thông tin.

Luồng công việc

  1. Điều tra các thành phần địa chỉ nếu cần.
  2. Nhắc khách hàng khắc phục vấn đề về địa chỉ.
  3. Yêu cầu xác thực địa chỉ mới cập nhật.
  4. (Không bắt buộc) Gửi yêu cầu đến điểm cuối phản hồi cho API. Xem bài viết Xử lý địa chỉ đã cập nhật.
  5. Tiếp tục với địa chỉ.
Thêm cơ sở phụ

Phản hồi từ verdict cho biết địa chỉ có thể bị thiếu cơ sở phụ. Ví dụ: verdict.possibleNextActionCONFIRM_ADD_SUBPREMISES. Cân nhắc nhắc khách hàng thêm số căn hộ.

Luồng công việc

  1. Yêu cầu khách hàng thêm số căn hộ.
  2. Yêu cầu xác thực địa chỉ mới cập nhật.
  3. (Không bắt buộc) Gửi yêu cầu đến điểm cuối phản hồi cho API. Xem bài viết Xử lý địa chỉ đã cập nhật.
  4. Tiếp tục với địa chỉ.
Xác nhận địa chỉ

Phản hồi từ verdict cho biết có thể có một số vấn đề nhỏ với địa chỉ. Ví dụ: verdict.possibleNextActionCONFIRM. Bạn nên nhắc khách hàng xem lại địa chỉ.

Luồng công việc

  1. Cần chỉnh sửa:
    1. Điều tra các thành phần địa chỉ nếu cần.
    2. Yêu cầu xác thực địa chỉ mới cập nhật.
    3. (Không bắt buộc) Gửi yêu cầu đến điểm cuối phản hồi cho API. Xem bài viết Xử lý địa chỉ đã cập nhật.
    4. Tiếp tục với địa chỉ.
  2. Không cần sửa đổi:
    1. (Không bắt buộc) Gửi yêu cầu đến điểm cuối phản hồi cho API. Xem bài viết Xử lý địa chỉ đã cập nhật.
    2. Tiếp tục với địa chỉ.
Chấp nhận địa chỉ

Phản hồi từ verdict cho biết có thể địa chỉ không gặp vấn đề. Ví dụ: verdict.possibleNextActionACCEPT. Hãy cân nhắc việc tiếp tục sử dụng địa chỉ này như bạn sẽ làm đối với mức độ rủi ro của mình.

Luồng công việc

Tiếp tục với địa chỉ trả lại hàng.

Tuỳ chỉnh logic xác thực

Mặc dù có thể sử dụng kết quả từ trường verdict.possibleNextAction để xác định cách hệ thống của bạn xử lý phản hồi API, nhưng bạn cũng có thể cân nhắc xây dựng logic tuỳ chỉnh, chẳng hạn như để xử lý các nhu cầu cụ thể của doanh nghiệp.

Mục đích của phần này là minh hoạ cách bạn có thể phát triển logic tuỳ chỉnh của riêng mình để diễn giải phản hồi API nhằm xác định xem bạn có muốn nhắc khách hàng hay không và cách bạn muốn nhắc khách hàng. Phần này trình bày các cấp độ rủi ro và các tín hiệu phản hồi API bổ sung cần cân nhắc để tuỳ chỉnh.

Tuy nhiên, ngay cả khi bạn chỉ dựa vào verdict.possibleNextAction để quyết định các bước tiếp theo, các tín hiệu bổ sung được mô tả bên dưới vẫn có thể giúp bạn hiểu rõ thông tin chi tiết về các vấn đề tiềm ẩn liên quan đến địa chỉ.

Mức độ chấp nhận rủi ro

Khi thiết kế cách hệ thống phản hồi các tín hiệu từ API Xác thực địa chỉ, các đề xuất sau đây có thể giúp bạn xây dựng mô hình phản hồi hiệu quả hơn. Tuy nhiên, đây chỉ là các đề xuất, vì vậy, hãy lưu ý rằng cách triển khai của bạn phải phù hợp với mô hình kinh doanh của bạn.

Hướng dẫn Chi tiết
Mức độ rủi ro

Hãy cân nhắc mức độ dung sai cho trường hợp của bạn khi cân bằng giữa việc nhắc sửa lỗi và chấp nhận địa chỉ đã nhập.

Address Validation API trả về nhiều tín hiệu mà bạn có thể kết hợp với mức độ rủi ro để tối ưu hoá quy trình xác thực.

Ví dụ: nếu một địa chỉ có số nhà chưa được xác nhận, bạn vẫn có thể chấp nhận địa chỉ đó. Mặt khác, nếu hoạt động kinh doanh của bạn yêu cầu địa chỉ chính xác hơn, bạn có thể nhắc người dùng. Để biết ví dụ có thể thuộc một trong hai danh mục này, hãy xem phần Số nhà chưa xác nhận ở bên ngoài Hoa Kỳ trong phần Chấp nhận địa chỉ – ví dụ.

Chấp nhận địa chỉ

Bạn nên cho phép hệ thống chấp nhận mục nhập ban đầu nếu khách hàng không phản hồi lời nhắc.

Trong những trường hợp này, có thể khách hàng đã nhập một địa chỉ không có trong hệ thống, chẳng hạn như đối với công trình xây dựng mới.

Ví dụ về quy trình thanh toán tránh rủi ro

Nếu muốn giảm nguy cơ giao hàng không thành công, bạn có thể tuỳ chỉnh logic để nhắc khách hàng thường xuyên hơn. Ví dụ: thay vì sử dụng logic được mô tả trong phần Mục đích của khoá, bạn có thể sử dụng logic sau.

if (verdict.possibleNextAction == FIX or verdict.validationGranularity
== OTHER or verdict.validationGranularity == ROUTE)
  Prompt customer to fix their address.
else if (verdict.possibleNextAction == CONFIRM_ADD_SUBPREMISES)
  Prompt customer to add a unit number.
else if (verdict.possibleNextAction == CONFIRM or verdict.validationGranularity
== PREMISE_PROXIMITY or verdict.hasSpellCorrectedComponents or
verdict.hasReplacedComponents or verdict.hasInferredComponents)
  Prompt customer to confirm their address.
else
  Proceed with the returned address.

Ví dụ về quy trình thanh toán ít phiền hà

Nếu muốn giảm sự phiền hà trong quy trình thanh toán, bạn có thể tuỳ chỉnh logic để ít nhắc khách hàng hơn. Ví dụ: thay vì sử dụng logic được mô tả trong phần Mục đích của khoá, bạn có thể sử dụng logic sau.

if (verdict.possibleNextAction == FIX)
  Prompt customer to fix their address.
else if (verdict.hasReplacedComponents)
  Prompt customer to confirm their address.
else
  Proceed with the returned address.

Tín hiệu FIX

Chỉnh sửa địa chỉ khi kết quả cho thấy rõ rằng địa chỉ đó có thể không giao được hàng. Sau đó, hệ thống của bạn có thể nhắc khách hàng cung cấp thông tin cần thiết, sau đó bạn sẽ phát hành lại quy trình làm việc để nhận địa chỉ giao hàng.

Ngoài verdict.possibleNextAction, bạn có thể sử dụng các trường sau đây của phản hồi API Xác thực địa chỉ để xác định xem một địa chỉ có vấn đề lớn hay không và những vấn đề đó là gì.

Độ chi tiết của quy trình xác thực Khi enum độ chi tiết xác thực cho một địa chỉ là OTHER, có thể địa chỉ đó không chính xác.
Thiếu thành phần Khi address.missingComponentTypes không trống, có thể địa chỉ đó bị thiếu thông tin chính.
Thành phần đáng ngờ Khi enum cấp độ xác nhận cho một thành phần là UNCONFIRMED_AND_SUSPICIOUS, có thể thành phần đó không chính xác.
Thành phần chưa được phân giải unresolvedToken là một phần của dữ liệu đầu vào không được nhận dạng là một phần hợp lệ của địa chỉ.
Xác nhận DPV của USPS Khi uspsData.dpvConfirmationN hoặc trống, có thể địa chỉ có vấn đề. Trường này chỉ dành cho địa chỉ ở Hoa Kỳ. Để biết thêm thông tin chi tiết về uspsData.dpvConfirmation, hãy xem phần Xử lý địa chỉ ở Hoa Kỳ.

Ví dụ về cách khắc phục địa chỉ

Tín hiệu CONFIRM_ADD_SUBPREMISES (chỉ áp dụng cho địa chỉ ở Hoa Kỳ)

Bạn nhắc khách hàng xem lại địa chỉ và cân nhắc thêm số căn hộ khi phản hồi của API Xác thực địa chỉ cho biết địa chỉ có thể thiếu cơ sở phụ. Trong những trường hợp này, địa chỉ của tòa nhà có thể là địa chỉ hợp lệ, nhưng bạn muốn chắc chắn hơn rằng địa chỉ thu được là địa chỉ mà khách hàng muốn.

Bạn có thể sử dụng các trường sau của phản hồi API Xác thực địa chỉ ngoài verdict.possibleNextAction để xác định xem một địa chỉ có khả năng thiếu cơ sở phụ hay không.

Missing subpremise component Khi trường address.missingComponentTypes chứa giá trị subpremise, điều đó cho biết địa chỉ bị thiếu số căn hộ.
Xác nhận DPV của USPS Khi uspsData.dpvConfirmationS, điều đó có nghĩa là số chính của địa chỉ đã được so khớp với một địa chỉ trong cơ sở dữ liệu USPS. Tuy nhiên, địa chỉ cũng phải chứa một số phụ. Trường này chỉ dành cho địa chỉ ở Hoa Kỳ. Để biết thêm chi tiết về uspsData.dpvConfirmation, hãy xem phần Xử lý địa chỉ ở Hoa Kỳ.

Ví dụ về cách thêm địa chỉ cơ sở phụ

Tín hiệu XÁC NHẬN

Bạn xác nhận một địa chỉ khi kết quả cho biết rằng API Xác thực địa chỉ đã suy luận hoặc thực hiện thay đổi đối với các thành phần địa chỉ để tạo một địa chỉ đã xác thực. Trong những trường hợp này, bạn có một địa chỉ giao hàng, nhưng muốn chắc chắn hơn rằng địa chỉ nhận hàng là địa chỉ mà khách hàng dự định.

Ngoài verdict.possibleNextAction, bạn có thể sử dụng các trường sau đây của phản hồi API Xác thực địa chỉ để xác định xem địa chỉ có vấn đề nhỏ hay không và những vấn đề đó là gì.

Độ chi tiết của quy trình xác thực Khi validationGranularity cho một địa chỉ là ROUTE hoặc PREMISE_PROXIMITY, địa chỉ đó có thể không chính xác.
Dữ liệu suy luận Khi trường hasInferredComponentstrue, bạn biết rằng API đã điền thông tin mà API thu thập được từ các thành phần địa chỉ khác.
Dữ liệu đã thay thế Khi trường hasReplacedComponentstrue, API sẽ thay thế dữ liệu đã nhập bằng dữ liệu mà API cho là hợp lệ để tạo địa chỉ.
Sửa lỗi chính tả Khi trường hasSpellCorrectedComponentstrue, API sẽ sửa chính tả của một số thành phần bị sai chính tả.

Ví dụ về địa chỉ xác nhận

Tín hiệu ACCEPT

Bạn có thể chấp nhận một địa chỉ khi phản hồi API API Xác thực địa chỉ cung cấp mức độ tin cậy cao rằng địa chỉ đó có thể giao hàng và có thể được sử dụng mà không cần khách hàng tương tác thêm trong quy trình tiếp theo.

Bạn có thể sử dụng các trường sau đây của phản hồi API Xác thực địa chỉ ngoài verdict.possibleNextAction để xác định xem một địa chỉ có chất lượng chấp nhận được hay không.

Độ chi tiết của quy trình xác thực validationGranularity của PREMISE thường được chấp nhận, mặc dù giá trị ROUTE vẫn có thể cho biết một địa chỉ có thể giao hàng.
Không có dữ liệu suy luận Khi trường hasInferredComponentsfalse, bạn biết rằng không có thành phần nào trong kết quả được suy luận.
Không có dữ liệu nào được thay thế Khi trường hasReplacedComponentsfalse, bạn biết rằng không có dữ liệu đầu vào nào được thay thế.
Không có lỗi chính tả Khi trường hasSpellCorrectedComponentsfalse, bạn biết rằng không có nội dung sửa lỗi chính tả nào được thực hiện.
Xác nhận DPV của USPS Khi uspsData.dpvConfirmationY, điều đó có nghĩa là địa chỉ đã được so khớp với một địa chỉ trong cơ sở dữ liệu của USPS. Trường này chỉ dành cho địa chỉ ở Hoa Kỳ. Để biết thêm thông tin chi tiết về uspsData.dpvConfirmation, hãy xem phần Xử lý địa chỉ ở Hoa Kỳ.

Ví dụ về địa chỉ được chấp nhận