Confirmar a aceitação do Contrato de Cliente da Microsoft pelo cliente usando APIs do Partner Center

Aplica-se a: Partner Center

Não se aplica a: Partner Center operado pela 21Vianet | Partner Center para o Microsoft Cloud for US Government

Atualmente, o Partner Center dá suporte à confirmação da aceitação do Contrato de Cliente da Microsoft pelo cliente somente na nuvem pública da Microsoft.

Este artigo descreve como confirmar ou reconfirmar a aceitação do cliente do Contrato de Cliente da Microsoft.

Pré-requisitos

  • Se você estiver usando o SDK do .NET do Partner Center, será necessário usar a versão 1.14 ou posterior.

Importante

A partir de junho de 2023, a versão 3.4.0 mais recente do SDK do Partner Center .NET foi arquivada. Você pode baixar a versão do SDK no GitHub, juntamente com um arquivo leiame que contém informações úteis.

Os parceiros são incentivados a continuar a usar as APIs REST do Partner Center.

  • Credenciais, conforme descrito em Autenticação do Partner Center. Esse cenário dá suporte apenas à autenticação de aplicativo + de usuário.

  • Uma ID do cliente (customer-tenant-id). Se você não souber a ID do cliente, poderá procurá-la no Partner Center selecionando o espaço de trabalho Clientes, o cliente na lista de clientes e, em seguida, Conta. Na página Conta do cliente, procure a ID da Microsoft na seção Informações da Conta do Cliente. A ID da Microsoft é igual à ID do cliente (customer-tenant-id).

  • A data (dateAgreed) em que o cliente aceitou o Contrato de Cliente da Microsoft.

  • Informações sobre o usuário da organização do cliente que aceitou o Contrato de Cliente da Microsoft. Isso inclui:

    • Nome
    • Sobrenome
    • Endereço de email
    • Número de telefone (opcional)
  • Se os valores a seguir forem alterados para um cliente, o Partner Center permitirá que outro contrato seja criado para esse cliente: Nome Sobrenome Endereço de email Número de telefone Caso contrário, os parceiros receberão o código de erro a seguir, devido a criação de um cliente duplicado

{
"code": 600061,
"message": "A partner confirmed agreement already exists for the customer.",
"description": "A partner confirmed agreement already exists for the customer.",
"errorName": "PartnerConfirmedAgreementAlreadyExists",
"isRetryable": false,
"parameters": {},
"errorMessageExtended": "InternalErrorCode=600061"
}

.NET

Para confirmar ou reconfirmar a aceitação do cliente do Contrato de Cliente da Microsoft:

  1. Recupere os metadados do Contrato de Cliente da Microsoft. Você precisa obter o templateId do Contrato de Cliente da Microsoft. Para obter mais informações, confira Obter metadados de contrato do Contrato de Cliente da Microsoft.

    // IAggregatePartner partnerOperations;
    
    string agreementType = "MicrosoftCustomerAgreement";
    
    var microsoftCustomerAgreementDetails = partnerOperations.AgreementDetails.ByAgreementType(agreementType).Get().Items.Single();
    
  2. Crie um objeto Agreement que contenha detalhes da confirmação.

  3. Use a coleção IAgreggatePartner.Customers e chame o método ById com o customer-tenant-id especificado.

  4. Use a propriedade Agreements, seguida de uma chamada para Create ou CreateAsync.

    // string selectedCustomerId;
    
    var agreementToCreate = new Agreement
    {
        DateAgreed = DateTime.UtcNow,
        TemplateId = microsoftCustomerAgreementDetails.TemplateId,
        PrimaryContact = new Contact
        {
            FirstName = "Tania",
            LastName = "Carr",
            Email = "someone@example.com",
            PhoneNumber = "1234567890"
        }
    };
    
    Agreement agreement = partnerOperations.Customers.ById(selectedCustomerId).Agreements.Create(agreementToCreate);
    

Um exemplo completo pode ser encontrado na classe CreateCustomerAgreement do projeto de aplicativo de teste do console.

Solicitação REST

Para confirmar ou reconfirmar a aceitação do cliente do Contrato de Cliente da Microsoft:

  1. Recupere os metadados do Contrato de Cliente da Microsoft. Você precisa obter o templateId do Contrato de Cliente da Microsoft. Para obter mais informações, confira Obter metadados de contrato do Contrato de Cliente da Microsoft.

  2. Crie um recurso Agreeement para confirmar que um cliente aceitou o Contrato de Cliente da Microsoft. Use a sintaxe de solicitação REST a seguir.

Sintaxe da solicitação

Método URI da solicitação
POST {baseURL}/v1/customers/{customer-tenant-id}/agreements HTTP/1.1

Parâmetro do URI

Use o parâmetro de consulta a seguir para especificar o cliente que você está confirmando.

Nome Digitar Obrigatório Descrição
id de locatário do cliente GUID Sim O valor é um customer-tenant-id formatado pelo GUID, que é um identificador que permite que você especifique um cliente.

Cabeçalhos de solicitação

Para obter mais informações, confira Cabeçalhos REST do Partner Center.

Corpo da solicitação

Esta tabela descreve as propriedades necessárias no corpo da solicitação REST.

Nome Digitar Descrição
Contrato objeto Detalhes fornecidos pelo parceiro para confirmar a aceitação do cliente do Contrato de Cliente da Microsoft.

Contrato

Esta tabela descreve os campos mínimos necessários para criar um recurso Agreement.

Propriedade Type Descrição
primaryContact Contato Informações sobre o usuário da organização do cliente que aceitou o Contrato de Cliente da Microsoft, incluindo: firstName, lastName, email e phoneNumber (opcional)
dateAgreed cadeia de caracteres no formato de data e hora em UTC A data em que o cliente aceitou o contrato.
templateId string Identificador exclusivo do tipo de contrato aceito pelo cliente. Você pode obter o templateId para o Contrato de Cliente da Microsoft recuperando os metadados do contrato para o Contrato de Cliente da Microsoft. Para obter mais detalhes, confira Obter metadados de contrato do Contrato de Cliente da Microsoft.
tipo string Tipo de contrato aceito pelo cliente. Use "MicrosoftCustomerAgreement" se o cliente tiver aceito o Contrato de Cliente da Microsoft.

Exemplo de solicitação

POST https://api.partnercenter.microsoft.com/v1/customers/14876998-c0dc-46e6-9d0c-65a57a6c32ec/agreements HTTP/1.1
Authorization: Bearer <token>
Content-Type: application/json
MS-RequestId: 94e4e214-6b06-4fb7-96d1-94d559f9b47f
MS-CorrelationId: ab993325-1605-4cf4-bac4-fb584142a31b
{
    "primaryContact": {
        "firstName": "Tania",
        "lastName": "Carr",
        "email": "someone@example.com",
        "phoneNumber": "1234567890"
    },
    "templateId": "117a77b0-9360-443b-8795-c6dedc750cf9",
    "dateAgreed": "2018-06-14T00:00:00.000Z",
    "type": "MicrosoftCustomerAgreement"
}

Resposta REST

Se for bem-sucedido, esse método retornará um recurso Agreement.

Códigos de êxito e de erro de resposta

Cada resposta vem com um código de status HTTP que indica êxito ou falha e informações de depuração adicionais.

Use uma ferramenta de rastreamento de rede para ler esse código, o tipo de erro e os parâmetros adicionais. Para obter a lista completa, confira Códigos de erro REST do Partner Center.

Exemplo de resposta

HTTP/1.1 201 Created
Content-Length: 261
Content-Type: application/json
MS-RequestId: 94e4e214-6b06-4fb7-96d1-94d559f9b47f
MS-CorrelationId: ab993325-1605-4cf4-bac4-fb584142a31b
{
    "userId": "3d6f2c09-eb40-48ca-a4b3-d24c9c007531",
    "primaryContact": {
        "firstName": "Tania",
        "lastName": "Carr",
        "email": "someone@example.com",
        "phoneNumber": "1234567890"
    },
    "templateId": "117a77b0-9360-443b-8795-c6dedc750cf9",
    "dateAgreed": "2018-06-14T00:00:00.000Z",
    "type": "MicrosoftCustomerAgreement"
}