Valider une adresse

s’applique à: Espace partenaires | Espace partenaires géré par 21Vianet | Espace partenaires pour Microsoft Cloud pour le gouvernement des États-Unis

Cet article explique comment valider une adresse à l’aide de l’API de validation d’adresse.

L’API de validation d’adresse ne doit être utilisée que pour la prévalidation des mises à jour de profil client. En fonction de l’état de réponse de l’API, l’appelant doit choisir l’adresse la plus appropriée pour le client.

Prerequisites

Informations d’identification décrites dans l’authentification de l’Espace partenaires. Ce scénario prend en charge l'authentification avec des identifiants d'application autonomes ainsi que des identifiants combinés application+utilisateur.

C#

Pour valider une adresse, instanciez d’abord un nouvel objet Address et remplissez-le avec l’adresse à valider. Ensuite, récupérez une interface vers les opérations Validations à partir de la propriété IAggregatePartner.Validations , puis appelez la méthode IsAddressValid avec l’objet d’adresse.

IAggregatePartner partnerOperations;

// Create an address to validate.
Address address = new Address()
{
    AddressLine1 = "One Microsoft Way",
    City = "Redmond",
    State = "WA",
    PostalCode = "98052",
    Country = "US"
};

// Validate the address.
AddressValidationResponse result = partnerOperations.Validations.IsAddressValid(address);

// If the request completes successfully, you can inspect the response object.

// See the status of the validation.
Console.WriteLine($"Status: {addressValidationResult.Status}");

// See the validation message returned.
Console.WriteLine($"Validation Message Returned: {addressValidationResult.ValidationMessage ?? "No message returned."}");

// See the original address submitted for validation.
Console.WriteLine($"Original Address:\n{this.DisplayAddress(addressValidationResult.OriginalAddress)}");

// See the suggested addresses returned by the API, if any exist.
Console.WriteLine($"Suggested Addresses Returned: {addressValidationResult.SuggestedAddresses?.Count ?? "None."}");

if (addressValidationResult.SuggestedAddresses != null && addressValidationResult.SuggestedAddresses.Any())
{
    addressValidationResult.SuggestedAddresses.ForEach(a => Console.WriteLine(this.DisplayAddress(a)));
}

// Helper method to pretty-print an Address object.
private string DisplayAddress(Address address)
{
    StringBuilder sb = new StringBuilder();

    foreach (var property in address.GetType().GetProperties())
    {
        sb.AppendLine($"{property.Name}: {property.GetValue(address) ?? "None to Display."}");
    }

    return sb.ToString();
}

Requête REST

Syntaxe de la requête

Méthode URI de la requête
POST {baseURL}/v1/validations/address HTTP/1.1

En-têtes de requête

Pour plus d’informations, consultez En-têtes REST de l’Espace Partenaires.

Corps de la demande

Ce tableau décrit les propriétés requises dans le corps de la requête.

Nom Type Obligatoire* Description
ligne d'adresse 1 ficelle Oui Première ligne de l’adresse.
ligneadresse2 ficelle N Deuxième ligne de l’adresse. Cette propriété est facultative.
city ficelle Oui La ville.
état ficelle Oui État.
code postal ficelle Oui Le code postal.
country ficelle Oui Code pays ISO alpha-2 à deux caractères.

* Les propriétés requises peuvent changer en fonction du pays ou de la région.

Détails de la réponse

La réponse retourne l’un des messages d’état suivants. Si la réponse d’état n’est pas Vérifié ou VérifiéShippable, passez en revue votre adresse saisie et/ou l’adresse suggérée. Il appartient à l’appelant de choisir l’adresse la plus appropriée pour le client.

État Description Nombre d’adresses suggérées retournées Recommandation de réponse de statut
Produit livrable vérifié L'adresse est vérifiée et des envois peuvent être effectués vers celle-ci. Célibataire Procédez avec l’adresse vérifiée.
Vérifié L’adresse est vérifiée. Célibataire Procédez avec l’adresse vérifiée.
Interaction requise L’adresse suggérée est considérablement modifiée et nécessite la confirmation de l’utilisateur. Célibataire Passez à l’adresse confirmée par l’utilisateur.
Rue partiellement fermée La rue donnée dans l’adresse est partielle et nécessite plus d’informations. Multiple : maximum de trois Passez à l’adresse confirmée par l’utilisateur.
Installation partielle Les locaux donnés (numéro de construction, numéro de suite et autres) sont partiels et nécessitent plus d’informations. Multiple : maximum de trois Passez à l’adresse confirmée par l’utilisateur.
Multiple Il existe plusieurs champs qui sont partiels dans l’adresse (éventuellement, y compris la rue partielle et la partie des locaux). Multiple : maximum de trois Passez à l’adresse confirmée par l’utilisateur.
Aucun L’adresse est incorrecte. Aucun Passez à l’adresse confirmée par l’utilisateur.
Non validé L’adresse n’a pas pu être envoyée via le processus de validation. Aucun Passez à l’adresse confirmée par l’utilisateur.

Note

Les adresses suggérées ne sont pas garanties et sont fournies comme étant optimales.

Exemple de requête

# "VerifiedShippable" Request Example

POST https://api.partnercenter.microsoft.com/v1/validations/address HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <token>
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: eb55c2b8-6f4b-4b44-9557-f76df624b8c0
Host: api.partnercenter.microsoft.com
Content-Length: 137
X-Locale: en-US

{
    "AddressLine1": "1 Microsoft Way",
    "City": "Redmond",
    "State": "WA",
    "PostalCode": "98052",
    "Country": "US"
}

# "StreetPartial" Request Example

POST https://api.partnercenter.microsoft.com/v1/validations/address HTTP/1.1
Accept: application/json
Content-Type: application/json
Authorization: Bearer <token>
MS-CorrelationId: bbbb1111-cc22-3333-44dd-555555eeeeee
MS-RequestId: ee6cf74c-3ab5-48d6-9269-4a4b75bd59dc
Host: api.partnercenter.microsoft.com
Content-Length: 135
X-Locale: en-US

{
    "AddressLine1": "Microsoft Way",
    "City": "Redmond",
    "State": "WA",
    "PostalCode": "98052",
    "Country": "US"
}

Réponse REST

Si elle réussit, la méthode renvoie un objet AddressValidationResponse dans le corps de la réponse, avec un code d’état HTTP 200 . Voici un exemple.

Réussite de la réponse et codes d’erreur

Chaque réponse est fournie avec un code d’état HTTP qui indique la réussite ou l’échec et les informations de débogage. Utilisez un outil de suivi réseau pour lire ce code, le type d’erreur et d’autres paramètres. Pour obtenir la liste complète, consultez Codes d’erreur REST de Partner Center.

Exemple de réponse

# "VerifiedShippable" Response Example

HTTP/1.1 200 OK
Date: Mon, 17 May 2021 23:19:19 GMT
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: eb55c2b8-6f4b-4b44-9557-f76df624b8c0
X-Locale: en-US
 
{
    "originalAddress": {
        "country": "US",
        "city": "Redmond",
        "state": "WA",
        "addressLine1": "1 Microsoft Way",
        "postalCode": "98052"
    },
    "suggestedAddresses": [
        {
            "country": "US",
            "city": "Redmond",
            "state": "WA",
            "addressLine1": "1 Microsoft Way",
            "postalCode": "98052-8300"
        }
    ],
    "status": "VerifiedShippable"
}

# "StreetPartial" Response Example

HTTP/1.1 200 OK
Date: Mon, 17 May 2021 23:34:08 GMT
Content-Type: application/json; charset=utf-8
MS-CorrelationId: bbbb1111-cc22-3333-44dd-555555eeeeee
MS-RequestId: ee6cf74c-3ab5-48d6-9269-4a4b75bd59dc
X-Locale: en-US
 
{
    "originalAddress": {
        "country": "US",
        "city": "Redmond",
        "state": "WA",
        "addressLine1": "Microsoft Way",
        "postalCode": "98052"
    },
    "suggestedAddresses": [
        {
            "country": "US",
            "city": "Redmond",
            "state": "WA",
            "addressLine1": "1 Microsoft Way",
            "postalCode": "98052-6399"
        }
    ],
    "status": "StreetPartial",
    "validationMessage": "Address field invalid for property: 'Region', 'PostalCode', 'City'"
}