Valider une adresse
S’applique à : Espace partenaires | Espace partenaires géré par 21Vianet | Espace partenaires de Microsoft Cloud for US Government
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.
Prérequis
Informations d’identification, comme décrit dans Authentification auprès de l’Espace partenaires. Ce scénario prend en charge l’authentification avec les informations d’identification d’application et d’application+utilisateur autonomes.
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();
}
Demande REST
Syntaxe de la requête
Méthode | URI de demande |
---|---|
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 |
---|---|---|---|
addressline1 | string | Y | Première ligne de l’adresse. |
addressline2 | string | N | Deuxième ligne de l’adresse. Cette propriété est facultative. |
city | chaîne | Y | La ville. |
état | chaîne | Y | État. |
postalcode | string | Y | Le code postal. |
country | string | Y | Le code pays alpha-2 ISO à 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 entrée et/ou l’adresse suggérée. Il appartient à l’appelant de choisir l’adresse la plus appropriée pour le client.
Statut | Description | Nombre d’adresses suggérées retournées | Recommandation de réponse d’état |
---|---|---|---|
Verified shippable (Valide pour l’expédition) | L’adresse est vérifiée, et valide en tant qu’adresse d’expédition. | Unique | Passez à l’adresse vérifiée. |
Vérifié | L’adresse est vérifiée. | Unique | Passez à l’adresse vérifiée. |
Interaction required (Interaction nécessaire) | L’adresse suggérée est considérablement modifiée et nécessite la confirmation de l’utilisateur. | Unique | Passez à l’adresse confirmée par l’utilisateur. |
Street partial (Informations sur la voie incomplètes) | La rue donnée dans l’adresse est partielle et nécessite davantage d’informations. | Multiple (maximum trois) | Passez à l’adresse confirmée par l’utilisateur. |
Premises partial (Informations sur le bâtiment incomplètes) | Les informations fournies sur le bâtiment (numéro de bâtiment, numéro de suite, etc.) sont incomplètes. | Multiple (maximum trois) | Passez à l’adresse confirmée par l’utilisateur. |
Multiple | Plusieurs champs sont incomplets dans l’adresse (notamment ceux concernant la voie et le bâtiment). | Multiple (maximum 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ée | L’adresse n’a pas pu être envoyée via le processus de validation. | Aucun | Passez à l’adresse confirmée par l’utilisateur. |
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 . Un exemple suit.
Codes d’erreur et de réussite de la réponse
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 l’Espace partenaires.
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'"
}