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:
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();
Crie um objeto Agreement que contenha detalhes da confirmação.
Use a coleção IAgreggatePartner.Customers e chame o método ById com o customer-tenant-id especificado.
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:
- 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.
- 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: aaaa0000-bb11-2222-33cc-444444dddddd
{
"primaryContact": {
"firstName": "Tania",
"lastName": "Carr",
"email": "someone@example.com",
"phoneNumber": "1234567890"
},
"templateId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"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: aaaa0000-bb11-2222-33cc-444444dddddd
{
"userId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"primaryContact": {
"firstName": "Tania",
"lastName": "Carr",
"email": "someone@example.com",
"phoneNumber": "1234567890"
},
"templateId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
"dateAgreed": "2018-06-14T00:00:00.000Z",
"type": "MicrosoftCustomerAgreement"
}