Em alto nível, seu aplicativo precisa lidar com o seguinte cenário:
Um usuário faz uma solicitação ou alteração no Cloud Marketplace, como se inscrever no produto.
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
.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
.