Dela via


Validera en adress

Gäller för: Partnercenter | Partnercenter som drivs av 21Vianet | Partnercenter för Microsoft Cloud for US Government

Den här artikeln beskriver hur du verifierar en adress med hjälp av API:et för adressverifiering.

API:et för adressverifiering bör endast användas för förhandsvalidering av kundprofiluppdateringar. Baserat på API-svarsstatusen bör anroparen välja den lämpligaste adressen för kunden.

Förutsättningar

Autentiseringsuppgifter enligt beskrivningen i Partnercenter-autentisering. Det här scenariot stöder autentisering med både fristående app- och App+User-autentiseringsuppgifter.

C#

Verifiera en adress genom att först instansiera ett nytt adressobjekt och fylla i det med den adress som ska verifieras. Hämta sedan ett gränssnitt till valideringsåtgärder från egenskapen IAggregatePartner.Validations och anropa metoden IsAddressValid med adressobjektet.

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

REST-begäran

Syntax för begäran

Metod URI för förfrågan
POST {baseURL}/v1/validations/address HTTP/1.1

Begärandehuvuden

Mer information finns i REST-huvuden för Partnercenter.

Begärandetext

I den här tabellen beskrivs de nödvändiga egenskaperna i begärandetexten.

Namn Type Krävs* beskrivning
addressline1 sträng Y Den första raden i adressen.
addressline2 sträng N Den andra raden i adressen. Den här egenskapen är valfri.
ort string Y Staden.
tillstånd string Y Tillståndet.
Postnummer sträng Y Postnummer.
land string Y Landskoden iso alpha-2 med två tecken.

* Obligatoriska egenskaper kan ändras baserat på land eller region.

Svarsinformation

Svaret returnerar något av följande statusmeddelanden. Om statussvaret inte är Verifierat eller VerifiedShippable granskar du din angivna adress och/eller föreslagna adress. Det är upp till uppringaren att välja den lämpligaste adressen för kunden.

Status beskrivning Antal föreslagna adresser som returneras Rekommendation för statussvar
Verifierad leveransbar Adressen verifieras och kan skickas till. Enstaka Fortsätt med verifierad adress.
Bekräftat Adressen har verifierats. Enstaka Fortsätt med verifierad adress.
Interaktion krävs Den föreslagna adressen ändras avsevärt och behöver användarbekräftelse. Enstaka Fortsätt med användarens bekräftade adress.
Del av gata Den angivna gatan i adressen är delvis och behöver mer information. Flera – högst tre Fortsätt med användarens bekräftade adress.
Delvis lokal De angivna lokalerna (byggnadsnummer, svitnummer och andra) är partiella och behöver mer information. Flera – högst tre Fortsätt med användarens bekräftade adress.
Flera Det finns flera fält som är partiella i adressen (potentiellt även delvis gata och delvis lokal). Flera – högst tre Fortsätt med användarens bekräftade adress.
Ingen Adressen är felaktig. Ingen Fortsätt med användarens bekräftade adress.
Inte verifierad Det gick inte att skicka adressen via valideringsprocessen. Ingen Fortsätt med användarens bekräftade adress.

Exempel på begäran

# "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: 29624f3c-90cb-4d34-a7e9-bd2de6d35218
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: 2c95c9bc-fdfb-4c6a-84f4-57c9b0826b43
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"
}

REST-svar

Om det lyckas returnerar metoden ett AddressValidationResponse-objekt i svarstexten med en HTTP 200-statuskod . Ett exempel följer.

Svarsframgång och felkoder

Varje svar levereras med en HTTP-statuskod som anger lyckad eller misslyckad och felsökningsinformation. Använd ett verktyg för nätverksspårning för att läsa den här koden, feltypen och andra parametrar. Den fullständiga listan finns i Rest-felkoder för Partnercenter.

Svarsexempel

# "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: 29624f3c-90cb-4d34-a7e9-bd2de6d35218
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: 2c95c9bc-fdfb-4c6a-84f4-57c9b0826b43
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'"
}