Gerenciar direitos de ofertas privadas

Quando um cliente compra uma oferta particular, o Google cria uma titularidade, que indica que ele comprou a oferta do Cloud Marketplace.

Neste artigo, mostramos como gerenciar direitos para suas ofertas privadas usando a API Partner Procurement.

Para saber como usar a API Partner Procurement para ofertas privadas, acesse a documentação de referência.

Aprovar um direito

Quando um cliente compra uma oferta privada, o Cloud Marketplace cria uma do produto e envia a seguinte mensagem do Pub/Sub para seu produto:

{
  "eventId": "...",
  "eventType": "ENTITLEMENT_CREATION_REQUESTED",
  "entitlement": {
  "id": "ENTITLEMENT_ID",
  "updateTime": "...",
  "newOfferDuration": "P1Y6M", // Contract duration for the offer
  "newOfferEndTime": "", // Ending time for the offer
  },
}

Neste exemplo, ENTITLEMENT_ID é um ID criado pela no Cloud Marketplace.

Se a oferta foi criada com uma duração, a mensagem mostra a duração em anos e meses, e o campo newOfferEndTime está vazio. Se a oferta for for criada com uma hora de término especificada, a mensagem exibirá o término da oferta horário e o campo newOfferDuration está vazio.

No seu sistema, atualize a conta do usuário para refletir a compra do que oferecem. Em seguida, para aprovar o direito, faça uma solicitação HTTP POST à API Partner Procurement e envie o ENTITLEMENT_ID que você está aprovando:

POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:approve

Recusar um direito

Para rejeitar um direito, use o método reject na solicitação HTTP POST:

POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:reject

Substituir uma oferta ativa

Dependendo de como você configura a oferta privada, o cliente pode substituir a oferta. Se um cliente selecionar uma nova oferta privada, você receberá uma mensagem do Pub/Sub no seguinte formato:

{
  "eventId": "...",
  "eventType": "ENTITLEMENT_PLAN_CHANGE_REQUESTED",
  "entitlement": {
  "id": "ENTITLEMENT_ID",
  "newPlan": "ultimate",   // New plan for the offer,
  "newOffer": "OFFER2",    // New offer,
  "updateTime": "...",
  "newOfferDuration": "P2Y",   // Contract duration for the new offer
  },
}

Neste exemplo, OFFER2 é a oferta de substituição e ENTITLEMENT_ID é um ID criado pelo Cloud Marketplace. A oferta e a duração é fornecida em anos e meses.

Para aprovar a substituição da oferta, faça a seguinte solicitação HTTP POST à API Partner Procurement:

POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:approvePlanChange

O corpo da solicitação precisa ter o plano da oferta que está sendo aprovada:

{
  "pendingPlanName": PLAN_NAME
}

Depois que a alteração for aprovada, você receberá outra mensagem do Pub/Sub quando a alteração entrar em vigor. Na mensagem, o campo eventType muda para ENTITLEMENT_PLAN_CHANGED. Para verificar o status de um plano, faça o seguinte Solicitação HTTP GET para a API Partner Procurement:

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

A resposta é semelhante à seguinte, com o campo state indicando se a nova oferta está ativa ou se a alteração da oferta ainda está pendente.

{
  "name": "providers/PARTNER_ID/entitlements/ENTITLEMENT_ID",
  "provider": "PARTNER_ID",
  "account": "USER_ACCOUNT_ID",
  "product": "example-server",
  "Offer":   "OFFER1",
  "plan": "pro",
  "state": "ENTITLEMENT_PENDING_PLAN_CHANGE",
  "newPendingOffer": "OFFER2",
  "newPendingPlan": "ultimate",
  "newOfferDuration": "P2Y",
  "newOfferEndTime": "",
  ...
}

Concluir outras tarefas de direitos

Para outras tarefas de direitos que não sejam específicas de Ofertas privadas, consulte o Documentação pública do Cloud Marketplace:

Lista de tipos de evento para tarefas da conta de oferta particular

A tabela a seguir inclui eventTypes que o produto pode receber em mensagens do Pub/Sub para ofertas privadas.

Para ver a lista completa, consulte Lista de tipos de eventos para tarefas da conta.

eventType Descrição
ENTITLEMENT_OFFER_ENDED Indica que a oferta privada de um cliente terminou. A oferta aciona um evento ENTITLEMENT_CANCELLED ou permanece ativo com preços sem desconto.

A seguir