Sử dụng API Xác thực địa chỉ để xử lý các địa chỉ ở khối lượng lớn

Mục tiêu

Là một nhà phát triển, bạn thường làm việc với các tập dữ liệu chứa địa chỉ của khách hàng có thể không có chất lượng tốt. Bạn cần đảm bảo rằng địa chỉ là chính xác cho các trường hợp sử dụng, từ xác minh mã khách hàng đến giao hàng, v.v.

API xác thực địa chỉ là một sản phẩm của Nền tảng Google Maps mà bạn có thể dùng để xác thực địa chỉ. Tuy nhiên, Google chỉ xử lý một địa chỉ tại một thời điểm. Trong tài liệu này, chúng ta sẽ xem xét cách sử dụng tính năng Xác thực địa chỉ số lượng lớn trong các trường hợp khác nhau, từ kiểm tra API đến xác thực địa chỉ một lần và định kỳ.

Trường hợp sử dụng

Bây giờ, hãy tìm hiểu các trường hợp sử dụng mà tính năng Xác thực địa chỉ số lượng lớn hữu ích.

Kiểm thử

Bạn thường muốn kiểm tra API xác thực địa chỉ bằng cách chạy hàng nghìn địa chỉ. Bạn có thể có địa chỉ trong tệp Giá trị được phân tách bằng dấu phẩy và muốn xác thực chất lượng của các địa chỉ.

Xác thực địa chỉ một lần

Trong quá trình làm quen với API xác thực địa chỉ, bạn nên xác thực cơ sở dữ liệu địa chỉ hiện có dựa trên cơ sở dữ liệu người dùng.

Xác thực định kỳ địa chỉ

Có một số trường hợp yêu cầu xác thực địa chỉ định kỳ:

  • Bạn có thể đã lên lịch cho các công việc để xác thực địa chỉ cho những chi tiết được thu thập trong ngày, ví dụ: từ lượt đăng ký của khách hàng, chi tiết đơn đặt hàng, lịch biểu giao hàng.
  • Bạn có thể nhận được các tệp kết xuất dữ liệu chứa địa chỉ của nhiều bộ phận, ví dụ: từ bộ phận bán hàng đến bộ phận tiếp thị. Bộ phận mới nhận được các địa chỉ thường muốn xác thực các địa chỉ đó trước khi sử dụng.
  • Bạn có thể thu thập địa chỉ trong các cuộc khảo sát hoặc nhiều chương trình khuyến mãi và sau đó cập nhật trong hệ thống trực tuyến. Bạn muốn xác thực rằng địa chỉ là chính xác trong khi nhập chúng vào hệ thống.

Tìm hiểu chuyên sâu về kỹ thuật

Theo mục đích của tài liệu này, chúng tôi giả định rằng:

  • Bạn đang gọi API xác thực địa chỉ bằng địa chỉ từ một cơ sở dữ liệu khách hàng (tức là một cơ sở dữ liệu có thông tin chi tiết về khách hàng)
  • Bạn có thể lưu cờ hợp lệ vào bộ nhớ đệm đối với các địa chỉ riêng lẻ trong cơ sở dữ liệu.
  • Cờ tính hợp lệ được truy xuất từ API xác thực địa chỉ khi một khách hàng cá nhân đăng nhập.

Lưu vào bộ nhớ đệm để dùng cho giai đoạn sản xuất

Khi sử dụng API xác thực địa chỉ, bạn thường muốn lưu một số phần của phản hồi từ lệnh gọi API vào bộ nhớ đệm. Mặc dù Điều khoản dịch vụ của chúng tôi giới hạn loại dữ liệu có thể được lưu vào bộ nhớ đệm, nhưng mọi dữ liệu có thể được lưu vào bộ nhớ đệm thông qua API xác thực địa chỉ đều phải được lưu vào bộ nhớ đệm trong tài khoản người dùng. Điều này có nghĩa là trong cơ sở dữ liệu, siêu dữ liệu địa chỉ hoặc địa chỉ phải được lưu vào bộ nhớ đệm đối với địa chỉ email hoặc mã nhận dạng chính khác của người dùng.

Đối với trường hợp sử dụng tính năng Xác thực địa chỉ khối lượng lớn, việc lưu dữ liệu vào bộ nhớ đệm phải tuân thủ Điều khoản dành riêng cho dịch vụ của API Xác thực địa chỉ, được nêu trong Mục 11.3. Dựa trên thông tin này, bạn sẽ có thể xác định liệu địa chỉ của người dùng có thể không hợp lệ hay không. Trong trường hợp này, bạn sẽ nhắc người dùng cung cấp địa chỉ đã sửa trong lần tiếp theo họ tương tác với ứng dụng của bạn.

  • Dữ liệu của đối tượng Kết quả

    • inputGranularity
    • validationGranularity
    • geocodeGranularity
    • addressComplete
    • hasUnconfirmedComponents
    • hasInferredComponents
    • hasReplacedComponents
  • Dữ liệu của đối tượng AddressComponent

    • confirmationLevel
    • inferred
    • spellCorrected
    • replaced
    • unexpected

Nếu bạn muốn lưu bất kỳ thông tin nào về địa chỉ thực sự vào bộ nhớ đệm, thì dữ liệu đó chỉ được lưu vào bộ nhớ đệm khi có sự đồng ý của người dùng. Điều này đảm bảo rằng người dùng biết rõ lý do một dịch vụ cụ thể lưu trữ địa chỉ của họ và họ chấp nhận các điều khoản chia sẻ địa chỉ của mình.

Ví dụ về sự đồng ý của người dùng: hoạt động tương tác trực tiếp với biểu mẫu địa chỉ thương mại điện tử trên trang thanh toán. Xin hiểu rằng bạn sẽ lưu vào bộ nhớ đệm và xử lý địa chỉ để vận chuyển kiện hàng.

Nếu người dùng đồng ý, bạn có thể lưu formattedAddress và các thành phần chính khác vào nội dung phản hồi vào bộ nhớ đệm. Tuy nhiên, trong trường hợp không có giao diện người dùng, người dùng sẽ không thể đưa ra sự đồng ý vì quá trình xác thực địa chỉ đang diễn ra từ phần phụ trợ. Do đó, bạn có thể lưu rất ít thông tin vào bộ nhớ đệm trong trường hợp không có giao diện người dùng này.

Tìm hiểu câu trả lời

Nếu phản hồi của API xác thực địa chỉ chứa các mã đánh dấu sau đây, thì bạn có thể yên tâm rằng địa chỉ nhập có chất lượng cung cấp được:

  • Điểm đánh dấu addressComplete trong đối tượng Kết quảtrue,
  • validationGranularity trong đối tượng Kết quảPREMISE hoặc SUB_PREMISE
  • Không có AddressComponent nào được đánh dấu là:
    • Inferred(Lưu ý: inferred=truecó thể xảy ra khi addressComplete=true)
    • spellCorrected
    • replaced
    • unexpected
  • confirmationLevel: Mức xác nhận trên AddressComponent được đặt thànhCONFIRMEDhoặcUNCONFIRMED_BUT_PLAUSIBLE

Nếu phản hồi của API không chứa các điểm đánh dấu ở trên, thì địa chỉ đầu vào có thể có chất lượng kém và bạn có thể lưu cờ vào bộ nhớ đệm trong cơ sở dữ liệu để phản ánh điều đó. Cờ được lưu trong bộ nhớ đệm cho biết toàn bộ địa chỉ có chất lượng kém trong khi những cờ chi tiết hơn như Sửa lỗi chính tả cho biết loại vấn đề cụ thể về chất lượng địa chỉ. Trong lần tương tác tiếp theo của khách hàng với một địa chỉ được gắn cờ là chất lượng kém, bạn có thể gọi API xác thực địa chỉ với địa chỉ hiện tại. API xác thực địa chỉ sẽ trả về địa chỉ đã sửa mà bạn có thể hiển thị qua lời nhắc trên giao diện người dùng. Khi khách hàng chấp nhận địa chỉ đã định dạng, bạn có thể lưu các nội dung sau vào bộ nhớ đệm trong thư trả lời:

  • formattedAddress
  • postalAddress
  • addressComponent componentNameshoặc
  • UspsData standardizedAddress

Triển khai quy trình xác thực địa chỉ không có giao diện người dùng

Dựa trên nội dung thảo luận ở trên:

  • Thông thường, cần phải lưu một phần của phản hồi từ API xác thực địa chỉ vào bộ nhớ đệm vì lý do kinh doanh.
  • Tuy nhiên, Điều khoản dịch vụ trong Nền tảng Google Maps hạn chế loại dữ liệu có thể được lưu vào bộ nhớ đệm.

Trong phần sau, chúng ta sẽ thảo luận về quy trình 2 bước về cách tuân thủ Điều khoản dịch vụ và triển khai việc xác thực địa chỉ khối lượng lớn.

Bước 1:

Ở bước đầu tiên, chúng ta sẽ tìm hiểu cách triển khai một tập lệnh xác thực địa chỉ khối lượng lớn từ một quy trình dữ liệu hiện có. Quá trình này sẽ cho phép bạn lưu trữ các trường cụ thể từ phản hồi của API xác thực địa chỉ theo cách tuân thủ Điều khoản dịch vụ.

Biểu đồ A: Sơ đồ dưới đây cho thấy cách nâng cao một quy trình dữ liệu bằng logic Xác thực địa chỉ khối lượng lớn.

alt_text

  • Theo Điều khoản dịch vụ , bạn có thể lưu addressComplete,validationGranularity and validationFlags vào bộ nhớ đệm khi xác thực địa chỉ theo cách không có giao diện người dùng .

  • Bạn có thể lưu addressComplete,validationGranularity and validationFlags, PlaceID vào bộ nhớ đệm dựa trên một UserID cụ thể trong cơ sở dữ liệu khách hàng.

Do đó, trong bước triển khai này, chúng tôi sẽ lưu các trường được đề cập ở trên vào bộ nhớ đệm vào UserID.

Để biết thêm thông tin, hãy xem thông tin chi tiết về cấu trúc dữ liệu thực tế.

Bước 2:

Ở bước 1, chúng tôi đã thu thập phản hồi rằng một số địa chỉ trong tập dữ liệu đầu vào có thể không có chất lượng cao. Trong bước tiếp theo, chúng tôi sẽ lấy những địa chỉ bị gắn cờ này và cung cấp cho người dùng, đồng thời yêu cầu họ đồng ý cho sửa địa chỉ đã lưu trữ.

Biểu đồ B: Sơ đồ này cho thấy quy trình tích hợp toàn diện của quy trình đồng ý của người dùng sẽ trông như thế nào:

alt_text

  1. Khi người dùng đăng nhập, trước tiên, hãy kiểm tra xem bạn có lưu bất kỳ cờ xác thực nào vào bộ nhớ đệm trong hệ thống của mình hay không, chẳng hạn như:

    • addressComplete là đúng
    • validationGranularity (Độ chi tiết của tính năng xác thực) không ở trạng thái PREMISE hoặc SUB_PREMISE
    • validationFlagsinferred,spellCorrected,replaced,unexpected.
      • Nếu không có cờ nào, điều chắc chắn là địa chỉ đã lưu vào bộ nhớ đệm hiện có có chất lượng tốt và có thể được sử dụng.
  2. Nếu có cờ, bạn nên hiển thị cho người dùng một giao diện người dùng để sửa/cập nhật địa chỉ của họ.

  3. Bạn có thể gọi lại Address Validation API (API Xác thực địa chỉ) với địa chỉ đã cập nhật hoặc được lưu trong bộ nhớ đệm và cung cấp địa chỉ đã sửa cho người dùng để xác nhận.

  4. Nếu địa chỉ có chất lượng tốt, API xác thực địa chỉ sẽ trả về formattedAddress.

  5. Bạn có thể hiển thị địa chỉ đó cho người dùng nếu đã sửa đổi hoặc ngầm chấp nhận nếu không có sửa đổi.

  6. Sau khi người dùng chấp nhận, bạn có thể lưu formattedAddress vào bộ nhớ đệm trong cơ sở dữ liệu.

Bước 2: Triển khai mã giả:

If addressComplete is FALSE

OR

If validationGranularity is Not PREMISE OR SUB_PREMISE

OR

If validationFlags is inferred OR spellCorrected OR replaced OR unexpected
  {

    # This means there are issues with the existing cached address

    Call UI to present the address to user

}
Else{

    # This means existing address is good
  Proceed to checkout
}

Kết luận

Xác thực địa chỉ số lượng lớn là một trường hợp sử dụng phổ biến mà bạn có thể gặp trong nhiều ứng dụng. Tài liệu này cố gắng minh hoạ một số tình huống và mẫu thiết kế về cách triển khai giải pháp đó theo Điều khoản dịch vụ của Nền tảng Google Maps.

Chúng tôi cũng đã viết thêm tài liệu tham khảo việc triển khai tính năng Xác thực địa chỉ số lượng lớn dưới dạng một thư viện nguồn mở trên GitHub. Hãy dùng thử để nhanh chóng bắt đầu xây dựng tính năng Xác thực địa chỉ số lượng lớn. Ngoài ra, hãy xem bài viết về các mẫu thiết kế về cách sử dụng thư viện trong các trường hợp khác nhau.

Các bước tiếp theo

Tải sách trắng về Cải thiện quy trình thanh toán, giao hàng và hoạt động bằng địa chỉ đáng tin cậy rồi xem Hội thảo trên web Cải thiện quy trình thanh toán, giao hàng và hoạt động bằng tính năng Xác thực địa chỉ .

Bạn nên đọc thêm:

Người đóng góp

Google duy trì bài viết này. Những người đóng góp sau đây đã viết bài đăng này đầu tiên.
Tác giả chính:

Henrik Valve | Kỹ sư giải pháp
Thomas Anglaret | Kỹ sư giải pháp
Sarthak Ganguly | Kỹ sư giải pháp