Compartir a través de


Validar una dirección

se aplica a: Centro de socios | Centro de socios operado por 21Vianet | Centro de socios para Microsoft Cloud para el gobierno de EE.UU.

En este artículo se explica cómo validar una dirección mediante la API de validación de direcciones.

La API de validación de direcciones solo debe usarse para la validación previa de las actualizaciones de perfil de cliente. En función del estado de respuesta de la API, el autor de la llamada debe elegir la dirección más adecuada para el cliente.

Prerrequisitos

Credenciales tal como se describen en el artículo Autenticación del Centro de partners. Este escenario admite la autenticación con credenciales de aplicación independiente y app+usuario.

C#

Para validar una dirección, primero cree una instancia de un nuevo objeto Address y llénelo con la dirección que se va a validar. A continuación, recupere una interfaz para las operaciones de validaciones de la propiedad IAggregatePartner.Validations y llame al método IsAddressValid con el objeto address.

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();
}

Solicitud REST

Sintaxis de solicitud

Método Solicitud URI
POST {baseURL}/v1/validations/address HTTP/1.1

Encabezados de solicitud

Para obtener más información, consulta Encabezados REST del Centro de partners.

Cuerpo de la solicitud

En esta tabla se describen las propiedades necesarias en el cuerpo de la solicitud.

Nombre Tipo Obligatorio* Descripción
addressline1 cadena Y Primera línea de la dirección.
addressline2 cadena N Segunda línea de la dirección. Esta propiedad es opcional.
ciudad cadena Y La ciudad.
estado cadena Y El estado.
código postal cadena Y El código postal.
país cadena Y Código de país ISO alfa-2 de dos caracteres.

* Las propiedades requeridas pueden cambiar en función del país o región.

Detalles de la respuesta

La respuesta devuelve uno de los siguientes mensajes de estado. Si la respuesta de estado no es Verified ni VerifiedShippable, revise la dirección especificada o la dirección sugerida. Depende del autor de la llamada elegir la dirección más adecuada para el cliente.

Estado Descripción Número de direcciones sugeridas devueltas Recomendación de respuesta de estado
Verificado como apto para envío La dirección está verificada y apta para el envío. Soltero Continúe con la dirección verificada.
Verificado La dirección está verificada. Soltero Continúe con la dirección verificada.
Interacción necesaria La dirección sugerida cambia significativamente y necesita confirmación del usuario. Soltero Continúe con la dirección confirmada por el usuario.
Street partial La calle especificada en la dirección es parcial y necesita más información. Múltiplo: máximo de tres Continúe con la dirección confirmada por el usuario.
Premises partial Los locales dados (número de edificio, número de oficina y otros) son parciales y requieren más información. Múltiplo: máximo de tres Continúe con la dirección confirmada por el usuario.
Varios La dirección tiene varios campos que son parciales (también puede incluir Street partial y Premises partial). Múltiplo: máximo de tres Continúe con la dirección confirmada por el usuario.
Ninguno La dirección es incorrecta. Ninguno Continúe con la dirección confirmada por el usuario.
No validado La dirección no se pudo enviar a través del proceso de validación. Ninguno Continúe con la dirección confirmada por el usuario.

Ejemplo de solicitud

# "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"
}

Respuesta REST

Si se ejecuta correctamente, el método devuelve un objeto AddressValidationResponse en el cuerpo de la respuesta, con un código de estado HTTP 200 . A continuación se muestra un ejemplo.

Códigos de error y de respuesta correctos

Cada respuesta incluye un código de estado HTTP que indica información de éxito o error y depuración. Use una herramienta de seguimiento de red para leer este código, tipo de error y otros parámetros. Para obtener la lista completa, consulte Códigos de error REST del Centro de partners.

Ejemplo de respuesta

# "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'"
}