Gerenciar contas de usuário do seu produto de SaaS

Em alto nível, seu aplicativo precisa lidar com o seguinte cenário:

  1. Um usuário faz uma solicitação ou alteração no Cloud Marketplace, como se inscrever no produto.

  2. O Cloud Marketplace envia uma notificação ao app pelo Pub/Sub, contendo informações sobre a solicitação no campo eventType. Por exemplo, se um usuário alterar seus direitos, eventType será ENTITLEMENT_PLAN_CHANGED.

    Veja a lista completa de possíveis eventTypes.

  3. Para aprovar a solicitação, seu aplicativo envia uma solicitação HTTP POST à API Partner Procurement.

Nas seções a seguir, descrevemos os tipos de solicitações é podem ser feitas pelos usuários e o que aplicativo precisa fazer para lidar com elas.

Para as chamadas de API descritas nesta seção, use este ponto de extremidade:

https://cloudcommerceprocurement.googleapis.com/

Antes de começar

  • Configure o acesso à API Cloud Commerce Partner Procurement, conforme descrito em Integrar seu app.

Criar uma conta para um novo usuário

Quando um usuário compra seu produto pela primeira vez, o Cloud Marketplace cria um recurso de conta que rastreia o relacionamento do usuário com você. Para compras subsequentes de produtos que você possui, o mesmo recurso de conta será reutilizado. Sempre que um usuário faz a primeira compra de um dos seus produtos, se você tiver ativado as notificações de conta para esse produto, vai receber uma notificação pelo tópico do Pub/Sub criado para você. A mensagem do Pub/Sub está no seguinte formato:

{
  "eventId": "...",
  "providerId": "YOUR_PARTNER_ID",
  "account": {
    "id": "USER_ACCOUNT_ID",
    "updateTime": "..."
  }
}

em que USER_ACCOUNT_ID é o ID da conta criado pelo Cloud Marketplace e YOUR_PARTNER_ID é um ID atribuído a você quando o Partner Engineer permite o acesso à API Partner Procurement.

Simultaneamente, o usuário é direcionado para sua página de inscrição, onde cria uma conta no seu sistema. Para ver mais informações sobre como criar a página de inscrição, consulte Como integrar o front-end do aplicativo.

Aprovar a conta de um usuário

Depois que o usuário se inscrever com sucesso, seu aplicativo precisará chamar a API Partner Procurement e indicar que a conta foi aprovada. As contas são criadas no estado ACCOUNT_ACTIVE, mas têm uma entrada PENDING no campo approvals, chamada signup. Isso indica que o usuário ainda não se inscreveu. Para aprovar a conta após a inscrição do usuário, use a seguinte solicitação HTTP POST:

POST v1/providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID:approve {'approvalName': 'signup'}

Verificar o status da conta de um usuário

Para verificar o status de uma conta vinculada, use a seguinte solicitação HTTP GET:

GET v1/providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID

A resposta está no seguinte formato:

{
  "name": "providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID",
  "provider": "acme-services",
  "state": "ACCOUNT_ACTIVE",
  "approvals": [{
    "name": "signup",
    "state": "APPROVED",
    "updateTime": "...",
  }],
  "updateTime": "...",
  "createTime": "..."
}

Para uma lista dos possíveis estados da conta, consulte a referência da API providers.accounts.