Creación de un cliente para un revendedor indirecto mediante las API del Centro de partners

Se aplica a: Centro de partners

Un proveedor indirecto puede crear un cliente para un revendedor indirecto.

Requisitos previos

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

  • Identificador de inquilino del revendedor indirecto.

  • El revendedor indirecto debe tener una asociación con el proveedor indirecto.

C#

Para agregar un nuevo cliente para un revendedor indirecto:

  1. Cree una instancia de un nuevo objeto Customer y, a continuación, cree una instancia de BillingProfile y CompanyProfile. Asegúrese de asignar el identificador de revendedor indirecto a la propiedad AssociatedPartnerID.

  2. Use la propiedad IAggregatePartner.Customers para obtener una interfaz para las operaciones de recopilación de clientes.

  3. Llame al método Create o CreateAsync para crear el cliente.

Ejemplo de C#

// IAggregatePartner partnerOperations;
// var indirectResellerId;
var customerToCreate = new Customer()
{
    CompanyProfile = new CustomerCompanyProfile()
    {
        Domain = string.Format(CultureInfo.InvariantCulture,
            "WingtipToys{0}.{1}",
            new Random().Next(),
            this.Context.Configuration.Scenario.CustomerDomainSuffix)
    },
    BillingProfile = new CustomerBillingProfile()
    {
        Culture = "EN-US",
        Email = "Gena@wingtiptoys.com",
        Language = "En",
        CompanyName = "Wingtip Toys",
        DefaultAddress = new Address()
        {
            FirstName = "Gena",
            LastName = "Soto",
            AddressLine1 = "One Microsoft Way",
            City = "Redmond",
            State = "WA",
            Country = "US",
            PostalCode = "98052",
            PhoneNumber = "4255550101"
        }
    },
    AssociatedPartnerId = indirectResellerId
};

var newCustomer = partnerOperations.Customers.Create(customerToCreate);

Ejemplo: Aplicación de prueba de consola. Project: Clase de ejemplos del SDK del Centro de partners: CreateCustomerforIndirectReseller.cs

Solicitud REST

Sintaxis de la solicitud

Método URI de solicitud
POST {baseURL}/v1/customers 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 Type Obligatorio Descripción
BillingProfile objeto Información del perfil de facturación del cliente.
CompanyProfile objeto Información del perfil de la empresa del cliente.
AssociatedPartnerId string Identificador de revendedor indirecto. El revendedor indirecto indicado por el identificador proporcionado aquí debe tener una asociación con el proveedor indirecto o se producirá un error en la solicitud. Tenga en cuenta también que si no se proporciona el valor AssociatedPartnerId, el cliente se crea como cliente directo del proveedor indirecto en lugar del revendedor indirecto.
Dominio Cadena Nombre de dominio del cliente, como contoso.onmicrosoft.com.
organizationRegistrationNumber string Número de registro de la organización del cliente (también denominado número de INN en determinados países o regiones). Solo es necesario para la empresa o organización del cliente ubicada en los siguientes países o regiones: Armenia(AM), Azerbaiyán(AZ), Bielorrusia(BY), Hungría(HU), Kazajstán(KZ), Kirguisa(KG), Moldova(MD), Rusia(RU), Tayikistán(TJ), Uzbekistán(UZ), Ucrania(UA), India, Brasil, Sudáfrica, Polonia, Emiratos Árabes Unidos, Arabia Saudita, Türkiye, Tailandia, Vietnam, Myanmar, Irak, Sudán del Sur y Venezuela. Para la empresa o organización del cliente ubicada en otros países o regiones, este es un campo opcional.

Perfil de facturación

En esta tabla se describen los campos mínimos necesarios del recurso CustomerBillingProfile necesario para crear un nuevo cliente.

Nombre Type Obligatorio Descripción
Correo electrónico string La dirección de correo electrónico del cliente.
culture string Su referencia cultural preferida para la comunicación y moneda, como en-US. Consulte Idiomas y configuraciones regionales admitidos del Centro de partners para conocer las referencias culturales admitidas.
language string El idioma predeterminado. Se admiten dos códigos de idioma de caracteres (por ejemplo en o fr).
company_name string Nombre de la empresa o organización registrada.
default_address Dirección Dirección registrada de la empresa o organización del cliente. Consulte el recurso Address para obtener información sobre las limitaciones de longitud.

Perfil de empresa

En esta tabla se describen los campos mínimos necesarios del recurso CustomerCompanyProfile necesario para crear un nuevo cliente.

Nombre Type Obligatorio Descripción
dominio string Nombre de dominio del cliente, como contoso.onmicrosoft.com.
organizationRegistrationNumber string Depende de la condición Número de registro de la organización del cliente (también denominado número de INN en determinados países o regiones).

Completar este campo solo es necesario si la empresa o organización de un cliente se encuentra en los siguientes países o regiones:

- Armenia (AM)
- Azerbaiyán (AZ)
- Bielorrusia (BY)
- Hungría (HU)
- Kazajstán (KZ)
- Kirguisa (KG)
- Moldova (MD)
- Rusia (RU)
- Tayikistán (TJ)
- Uzbekistán (UZ)
- Ucrania (UA)
-India
-Brasil
-Sudáfrica
-Polonia
- Emiratos Árabes Unidos
-Arabia Saudí
-Türkiye
-Tailandia
-Vietnam
-Myanmar
-Irak
- Sudán del Sur
-Venezuela
- China

Para la empresa o organización del cliente ubicada en otros países o regiones, se trata de un campo opcional.

GDAP de forma predeterminada

Nombre Escribir Descripción
enableGDAPByDefault bool Boolean para indicar si queremos habilitar GDAP de forma predeterminada o no. Si es true, crearemos GDAP de forma predeterminada. Si es false, no crearemos GDAP. Tenga en cuenta que esto solo se respeta en nubes que admiten GDAP. Si no se admite, DAP se creará de forma predeterminada.

Ejemplo de solicitud

POST https://api.partnercenter.microsoft.com/v1/customers HTTP/1.1
Authorization: Bearer <token>
MS-RequestId: d628adbe-b7ee-412e-ac55-58f22b4ba2f4
MS-CorrelationId: 0dd197a8-992c-44ca-aeae-21cd83494dce
X-Locale: en-US
MS-PartnerCenter-Client: Partner Center .NET SDK
Content-Type: application/json
Host: api.partnercenter.microsoft.com
Content-Length: 823
Expect: 100-continue
Connection: Keep-Alive

{
    "enableGDAPByDefault": false,
    "Id": null,
    "CommerceId": null,
    "CompanyProfile": {
        "TenantId": null,
        "Domain": "WingtipToys678152504.onmicrosoft.com",
        "CompanyName": null,
        "Attributes": {
            "ObjectType": "CustomerCompanyProfile"
        }
    },
    "BillingProfile": {
        "Id": null,
        "FirstName": null,
        "LastName": null,
        "Email": "Gena@wingtiptoys.com",
        "Culture": "EN-US",
        "Language": "En",
        "CompanyName": "Wingtip Toys",
        "DefaultAddress": {
            "Country": "US",
            "Region": null,
            "City": "Redmond",
            "State": "WA",
            "AddressLine1": "One Microsoft Way",
            "AddressLine2": null,
            "PostalCode": "98052",
            "FirstName": "Gena",
            "LastName": "Soto",
            "PhoneNumber": "4255550101"
        },
        "Attributes": {
            "ObjectType": "CustomerBillingProfile"
        }
    },
    "RelationshipToPartner": "none",
    "AllowDelegatedAccess": null,
    "UserCredentials": null,
    "CustomDomains": null,
    "AssociatedPartnerId": "484e548c-f5f3-4528-93a9-c16c6373cb59",
    "Attributes": {
        "ObjectType": "Customer"
    }
}

Importante

A partir de junio de 2023, la versión 3.4.0 más reciente del SDK de .NET del Centro de partners ahora está archivada. Puede descargar esta versión del SDK de GitHub, junto con un archivo Léame que contiene información útil.

Se recomienda a los partners seguir usando las API REST del Centro de partners.

Respuesta REST

Si se ejecuta correctamente, la respuesta contiene un recurso Customer para el nuevo cliente.

Códigos de error y de respuesta correctos

Las respuestas incluyen un código de estado HTTP que indica el éxito o error y la información adicional de depuración. Use una herramienta de seguimiento de red para leer este código, el tipo de error y los parámetros adicionales. Para obtener la lista completa, consulta Códigos de error de REST del Centro de partners.

Ejemplo de respuesta

HTTP/1.1 201 Created
Content-Length: 1085
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 0dd197a8-992c-44ca-aeae-21cd83494dce
MS-RequestId: d628adbe-b7ee-412e-ac55-58f22b4ba2f4
MS-CV: Yy/YaA0gYEmfQyR/.0
MS-ServerId: 030020525
Date: Tue, 06 Jun 2017 23:11:40 GMT

{
    "enableGDAPByDefault": false,
    "id": "626099fe-17af-4756-9fd0-6a73b7127859",
    "commerceId": "626099fe-17af-4756-9fd0-6a73b7127859",
    "companyProfile": {
        "tenantId": "626099fe-17af-4756-9fd0-6a73b7127859",
        "domain": "WingtipToys678152504.onmicrosoft.com",
        "companyName": "Wingtip Toys",
        "links": {
            "self": {
                "uri": "/customers/626099fe-17af-4756-9fd0-6a73b7127859/profiles/company",
                "method": "GET",
                "headers": []
            }
        },
        "attributes": {
            "objectType": "CustomerCompanyProfile"
        }
    },
    "billingProfile": {
        "id": "7079246e-7b62-56ef-7cbd-a819514b54b5",
        "email": "Gena@wingtiptoys.com",
        "culture": "en-US",
        "language": "En",
        "companyName": "Wingtip Toys",
        "defaultAddress": {
            "country": "US",
            "city": "Redmond",
            "state": "WA",
            "addressLine1": "One Microsoft Way",
            "postalCode": "98052",
            "firstName": "Gena",
            "lastName": "Soto",
            "phoneNumber": "4255550101"
        },
        "attributes": {
            "etag": "-8799889149591823008",
            "objectType": "CustomerBillingProfile"
        }
    },
    "relationshipToPartner": "reseller",
    "allowDelegatedAccess": true,
    "userCredentials": {
        "userName": "admin",
        "password": "0Krha*Io"
    },
    "associatedPartnerId": "484e548c-f5f3-4528-93a9-c16c6373cb59",
    "attributes": {
        "objectType": "Customer"
    }
}