Doğrulama mantığınızı oluşturun

Bu dokümanda, Address Validation API'den gelen çeşitli yanıtları işlemek için bir adres kontrol sistemi oluşturma süreci açıklanmaktadır. Müşterilerinizden ne zaman ve nasıl daha fazla bilgi isteyeceklerini belirlemek için API yanıtının nasıl yorumlanacağını içerir.

API yanıtı, genel olarak sisteminizin bir adresi işleme şeklini belirler:

  • Düzelt: Adres önemli sorunlar içerebilir.
    Müşterinizden daha fazla bilgi isteyebilirsiniz.
  • Alt tesis ekleyin: Adreste alt tesis eksik olabilir.
    Müşterinizden birim numarası eklemesini isteyebilirsiniz.
  • Onayla: Adreste küçük sorunlar olabilir.
    Müşterinizden adresi doğrulamasını isteyebilirsiniz.
  • Kabul et: Adreste sorun olmayabilir.
    İstekte bulunmadan, kendi sorumluluğunuzda olmak üzere adresi kullanmayı düşünün.

Temel amaç

Bu doküman, API yanıtını en iyi şekilde analiz etmek ve sağlanan adreslerle yapılacak sonraki işlemleri belirlemek için sisteminizi değiştirmenize yardımcı olur. Aşağıdaki sözde kod, olası bir akışı göstermektedir.

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.

Tam mantık durumunuza bağlıdır. Daha fazla bilgi için Doğrulama mantığınızı özelleştirme bölümüne bakın.

Olası iş akışları

Aşağıdaki tabloda, API yanıtına göre müşterinize istemde bulunmak için uygulayabileceğiniz olası iş akışları özetlenmiştir.

Sistem davranışınız
Adresi düzeltin

verdict'ten gelen yanıt, adresle ilgili önemli sorunlar olabileceğini gösterir. Örneğin, verdict.possibleNextAction FIX değerine sahiptir. Müşterinizden daha fazla bilgi isteyebilirsiniz.

İş akışı

  1. Gerekirse adres bileşenlerini inceleyin.
  2. Müşteriden adres sorunlarını düzeltmesini isteyin.
  3. Güncellenen adresin doğrulanmasını isteyin.
  4. (İsteğe bağlı) API'nin geri bildirim uç noktasına istek gönderin. Güncellenen adresleri işleme bölümüne bakın.
  5. Adrese devam edin.
Alt tesis ekleme

verdict tarafından verilen yanıt, adreste alt tesis eksik olabileceğini gösteriyor. Örneğin, verdict.possibleNextAction CONFIRM_ADD_SUBPREMISES'dur. Müşterinizden birim numarası eklemesini isteyebilirsiniz.

İş akışı

  1. Müşteriden birim numarası eklemesini isteyin.
  2. Güncellenen adresin doğrulanmasını isteyin.
  3. (İsteğe bağlı) API'nin geri bildirim uç noktasına istek gönderin. Güncellenen adresleri işleme bölümüne bakın.
  4. Adrese devam edin.
Adresi onaylama

verdict tarafından verilen yanıt, adresle ilgili küçük sorunlar olabileceğini gösterir. Örneğin, verdict.possibleNextAction CONFIRM'dur. Müşterinizin adresi incelemesini isteyebilirsiniz.

İş akışı

  1. Düzeltilmesi gerekenler:
    1. Gerekirse adres bileşenlerini inceleyin.
    2. Güncellenen adresin doğrulanmasını isteyin.
    3. (İsteğe bağlı) API'nin geri bildirim uç noktasına istek gönderin. Güncellenen adresleri işleme bölümüne bakın.
    4. Adrese devam edin.
  2. Düzeltme gerekmez:
    1. (İsteğe bağlı) API'nin geri bildirim uç noktasına istek gönderin. Güncellenen adresleri işleme bölümüne bakın.
    2. Adrese devam edin.
Adresi kabul et

verdict'ten gelen yanıt, adresle ilgili sorun olmayabileceğini gösteriyor. Örneğin, verdict.possibleNextAction ACCEPT'dur. Risk düzeyiniz için yaptığınız gibi bu adresle devam edebilirsiniz.

İş akışı

İade adresine devam edin.

Doğrulama mantığınızı özelleştirme

Sisteminizin API yanıtıyla nasıl ilerlediğini belirlemek için verdict.possibleNextAction alanındaki sonuçları kullanabilirsiniz. Bununla birlikte, işletmeye özgü ihtiyaçları karşılamak gibi özel mantıklar da oluşturabilirsiniz.

Bu bölümün amacı, müşterinize istemde bulunup bulunmayacağınızı ve bunu nasıl yapacağınızı belirlemek için API yanıtını yorumlamak üzere nasıl kendi özel mantığınızı geliştirebileceğinizi göstermektir. Bu bölümde, özelleştirmeniz için dikkate almanız gereken risk seviyeleri ve ek API yanıt sinyalleri ele alınmaktadır.

Bununla birlikte, sonraki adımlarınızı belirlemek için yalnızca verdict.possibleNextAction değerini kullanırsanız bile aşağıda açıklanan ek sinyaller, adresle ilgili olası sorunlar hakkında ayrıntılı bilgi edinmenize yardımcı olabilir.

Risk toleransı

Sisteminizin Address Validation API'den gelen sinyallere nasıl yanıt vereceğini tasarlarken aşağıdaki öneriler daha etkili bir yanıt modeli oluşturmanıza yardımcı olabilir. Ancak bunlar yalnızca önerilerdir. Bu nedenle, uygulamanızın işletme modelinize uygun olması gerektiğini unutmayın.

Yönergeler Ayrıntılar
Risk düzeyi

Düzeltme isteğinde bulunma ve adresi girildiği şekilde kabul etme arasında denge kurarken durumunuza göre tolerans düzeyini göz önünde bulundurun.

Address Validation API, doğrulama sürecinizi optimize etmek için risk düzeyinizle birlikte kullanabileceğiniz çeşitli sinyaller döndürür.

Örneğin, bir adresin sokak numarası onaylanmamış olsa bile bu adresi kabul edebilirsiniz. Öte yandan, işletmenizin işleyişi için daha yüksek adres doğruluğu gerekiyorsa kullanıcınızdan adres isteyebilirsiniz. Her iki kategoriye de girebilecek bir örnek için Adres kabul etme - örnekler bölümündeki ABD dışındaki onaylanmamış sokak numarası bölümüne bakın.

Adresleri kabul etme

Müşteri istemlere yanıt vermezse sisteminizin orijinal girişi kabul etmesine izin vermek iyi bir uygulamadır.

Bu gibi durumlarda müşteri, sistemde bulunmayan bir adres (ör. yeni inşa edilmiş bir bina) girmiş olabilir.

Riskten kaçınan ödeme akışı örneği

Başarısız yayınlama riskini azaltmak istiyorsanız mantığınızı müşterilerinize daha sık istemde bulunacak şekilde özelleştirebilirsiniz. Örneğin, Temel amaç bölümünde açıklanan mantığı kullanmak yerine aşağıdaki mantığı kullanabilirsiniz.

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.

Sorunsuz ödeme akışı örneği

Ödeme akışınızdaki sürtünmeyi azaltmak istiyorsanız mantığınızı, müşterilerinize daha seyrek istem gösterecek şekilde özelleştirebilirsiniz. Örneğin, Temel amaç bölümünde açıklanan mantığı kullanmak yerine aşağıdaki mantığı kullanabilirsiniz.

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.

FIX sinyalleri

Sonuçlar, adresin teslim edilemeyebileceğini açıkça gösterdiğinde adresi düzeltin. Sisteminiz daha sonra müşteriden gerekli bilgileri vermesini isteyebilir. Ardından, teslimat adresi almak için iş akışınızı yeniden gönderirsiniz.

Bir adresin önemli sorunları olup olmadığını ve bu sorunların ne olduğunu belirlemek için Address Validation API yanıtının aşağıdaki alanları verdict.possibleNextAction'e ek olarak kullanılabilir.

Doğrulama ayrıntı düzeyi Bir adresin doğrulama ayrıntı düzeyi enum değeri OTHER ise adresin yanlış olması muhtemeldir.
Eksik bileşenler address.missingComponentTypes boş değilse adreste önemli bilgiler eksik olabilir.
Şüpheli bileşenler Bir bileşenin onay düzeyi enum değeri UNCONFIRMED_AND_SUSPICIOUS ise bileşenin yanlış olması muhtemeldir.
Çözümlenmemiş bileşenler unresolvedToken, girişin geçerli bir adres parçası olarak tanınmayan bir parçasıdır.
USPS DPV Onayı uspsData.dpvConfirmation N ise veya boşsa adresle ilgili bir sorun olabilir. Bu alan yalnızca ABD adresleri için kullanılabilir. uspsData.dpvConfirmation hakkında daha fazla bilgi için ABD adreslerini işleme başlıklı makaleyi inceleyin.

Adres örneklerini düzeltme

CONFIRM_ADD_SUBPREMISES sinyalleri (yalnızca ABD adresleri)

Address Validation API yanıtı, adreste alt tesis eksik olabileceğini gösteriyorsa müşterinizden adresi incelemesini ve bir birim numarası eklemeyi düşünmesini isteyin. Bu durumlarda binanın adresi muhtemelen geçerlidir ancak elde edilen adresin müşterinin kastettiği adres olduğundan emin olmak istersiniz.

Bir adreste muhtemelen alt tesis eksik olup olmadığını belirlemek için verdict.possibleNextAction'e ek olarak Address Validation API yanıtının aşağıdaki alanları kullanılabilir.

Missing subpremise component address.missingComponentTypes alanında subpremise değeri varsa adreste daire numarası eksik demektir.
USPS DPV Onayı uspsData.dpvConfirmation S olduğunda, adresin birincil numarasının USPS veritabanındaki bir adresle eşleştiği anlamına gelir. Ancak adresin ikincil bir numara da içermesi gerekiyordu. Bu alan yalnızca ABD adresleri için kullanılabilir. uspsData.dpvConfirmation hakkında daha fazla bilgi için ABD adreslerini işleme başlıklı makaleyi inceleyin.

Alt tesis adresi örnekleri ekleme

ONAYLA sinyalleri

Adres Doğrulama API'sinin, doğrulanmış bir adres oluşturmak için adres bileşenlerinde çıkarım yaptığını veya değişiklik yaptığını belirten bir karar olduğunda bir adresi onaylarsınız. Bu gibi durumlarda, teslim edilebilir bir adresiniz vardır ancak elde edilen adresin müşterinin istediği adres olduğundan emin olmak istersiniz.

Bir adresin küçük sorunları olup olmadığını ve bu sorunların ne olduğunu belirlemek için Address Validation API yanıtının aşağıdaki alanları verdict.possibleNextAction'e ek olarak kullanılabilir.

Doğrulama ayrıntı düzeyi Bir adresin validationGranularity değeri ROUTE veya PREMISE_PROXIMITY ise adres yanlış olabilir.
Tahmine dayalı veriler hasInferredComponents alanı true olduğunda, API'nin diğer adres bileşenlerinden edindiği bilgileri doldurduğunu bilirsiniz.
Değiştirilen veriler hasReplacedComponents alanı true olduğunda API, girilen verileri adresi geçerli kılacak verilerle değiştirdi.
Yazım düzeltmeleri hasSpellCorrectedComponents alanı true olduğunda API, bazı yanlış yazılmış bileşenlerin yazımını düzeltti.

Adres onaylama örnekleri

KABUL ET sinyalleri

Address Validation API API yanıtı, adresin teslim edilebilir olduğuna ve aşağı akış sürecinde başka müşteri etkileşimi olmadan kullanılabileceğine dair yüksek düzeyde güven sağladığında bir adresi kabul edebilirsiniz.

Bir adresin kabul edilebilir kalitede olup olmadığını belirlemek için verdict.possibleNextAction'e ek olarak Address Validation API yanıtının aşağıdaki alanları da kullanılabilir.

Doğrulama ayrıntı düzeyi PREMISE değerinin ROUTE olması genellikle kabul edilir ancak ROUTE değeri, teslim edilebilir bir adresi de gösterebilir.validationGranularity
Tahmine dayalı veri yok hasInferredComponents alanı false olduğunda, çıkışta hiçbir bileşenin çıkarılmadığını bilirsiniz.
Değiştirilmiş veri yok hasReplacedComponents alanı false olduğunda, giriş verilerinin değiştirilmediğini bilirsiniz.
Yazım düzeltmesi yok hasSpellCorrectedComponents alanı false olduğunda, yazım düzeltmesi yapılmadığını bilirsiniz.
USPS DPV Onayı uspsData.dpvConfirmation Y olduğunda, adresin USPS veritabanındaki bir adresle eşleştiği Bu alan yalnızca ABD adresleri için kullanılabilir. uspsData.dpvConfirmation hakkında daha fazla bilgi için ABD adreslerini işleme başlıklı makaleyi inceleyin.

Kabul edilen adres örnekleri