Partilhar via


Confirmar a aceitação do Contrato de Cliente 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 for Microsoft Cloud for US Government

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

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

Pré-requisitos

  • Se você estiver usando o SDK .NET do Partner Center, a versão 1.14 ou mais recente é necessária.

Importante

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

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

  • Credenciais conforme descrito na autenticação do Partner Center. Este cenário suporta apenas a autenticação App+User.

  • Um ID de cliente (customer-tenant-id). Se não souber o ID do cliente, pode procurá-lo no Partner Center selecionando a área de trabalho Clientes e, em seguida, 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 é a mesma que a ID do cliente (customer-tenant-id).

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

  • Informações sobre o usuário da organização do cliente que aceitou o Contrato de Cliente da Microsoft. O que está incluído:

    • Nome próprio
    • Apelido
    • Endereço de e-mail
    • Número de telefone (opcional)
  • Se os seguintes valores forem alterados para um cliente, o Partner Center permitirá que outro contrato seja criado para esse cliente: Nome Apelido Endereço de e-mail Número de telefone Caso contrário, os parceiros receberão o seguinte código de erro, devido à 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 Contrato de Cliente Microsoft pelo cliente:

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

    // IAggregatePartner partnerOperations;
    
    string agreementType = "MicrosoftCustomerAgreement";
    
    var microsoftCustomerAgreementDetails = partnerOperations.AgreementDetails.ByAgreementType(agreementType).Get().Items.Single();
    
  2. Crie um novo objeto Agreement contendo 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 chamar 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 de console.

Pedido REST

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

  1. Recupere os metadados do contrato para o Contrato de Cliente da Microsoft. Você deve obter o templateId do Contrato de Cliente Microsoft. Para obter mais informações, consulte Obter metadados de contrato para o Contrato de Cliente Microsoft.
  2. Crie um novo recurso de Contrato para confirmar que um cliente aceitou o Contrato de Cliente Microsoft. Use a seguinte sintaxe de solicitação REST.

Sintaxe da solicitação

Método URI do pedido
POST {baseURL}/v1/customers/{customer-tenant-id}/acordos HTTP/1.1

Parâmetro URI

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

Nome Tipo Necessário Descrição
ID do cliente-locatário GUID Sim O valor é um customer-tenant-id formatado em GUID, que é um identificador que permite especificar um cliente.

Cabeçalhos do pedido

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

Corpo do pedido

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

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

Contrato

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

Propriedade Tipo Descrição
primárioContato Contacto Informações sobre o usuário da organização do cliente que aceitou o Contrato de Cliente da Microsoft, incluindo: nome, sobrenome, email e número de telefone (opcional)
dataAcordado string no formato de data e hora UTC A data em que o cliente aceitou o contrato.
templateId string Identificador único do tipo de contrato aceite pelo cliente. Você pode obter o templateId para o Contrato de Cliente Microsoft recuperando os metadados do contrato para o Contrato de Cliente Microsoft. Consulte Obter metadados do contrato para o Contrato de Cliente Microsoft para obter detalhes.
tipo string Tipo de contrato aceite pelo cliente. Use "MicrosoftCustomerAgreement" se o cliente aceitou 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: aaaa0000-bb11-2222-33cc-444444dddddd
{
    "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 do REST

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

Códigos de sucesso e erro de resposta

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

Use uma ferramenta de rastreamento de rede para ler esse código, tipo de erro e parâmetros adicionais. Para obter a lista completa, consulte 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: aaaa0000-bb11-2222-33cc-444444dddddd
{
    "userId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
    "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"
}