Administra los derechos de las ofertas privadas

Cuando un cliente compra una oferta privada, Google crea una autorización, que indica que el cliente compró la oferta de Cloud Marketplace.

En este artículo, se explica cómo administrar los derechos de tus ofertas privadas con la API de Partner Procurement.

Si quieres obtener detalles sobre el uso de la API de Partner Procurement para ofertas privadas, visita la documentación de referencia.

Aprueba una autorización

Cuando un cliente compra una oferta privada, Cloud Marketplace crea una autorización y envía el siguiente mensaje de Pub/Sub a tu producto:

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

En este ejemplo, ENTITLEMENT_ID es un ID creado por Cloud Marketplace.

Si la oferta se creó con una duración, el mensaje muestra la duración en años y meses, y el campo newOfferEndTime está vacío. Si la oferta se creó con una hora de finalización específica, el mensaje mostrará la hora de finalización de la oferta y el campo newOfferDuration estará vacío.

En tu sistema, actualiza la cuenta del usuario para que refleje que compró la oferta. Luego, para aprobar la autorización, realiza una solicitud de HTTP POST a la API de Partner Procurement y envía el ENTITLEMENT_ID que estás aprobando:

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

Rechazar una autorización

Para rechazar un derecho, usa el método reject en tu solicitud HTTP POST:

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

Cómo reemplazar una oferta activa

Según cómo configures la oferta privada, es posible que el cliente pueda reemplazar la oferta. Si un cliente selecciona una oferta privada nueva, recibirás un mensaje de Pub/Sub en el siguiente 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
  },
}

En este ejemplo, OFFER2 es la oferta de reemplazo y ENTITLEMENT_ID es un ID creado por Cloud Marketplace. La duración de la oferta se proporciona en años y meses.

Para aprobar el reemplazo de la oferta, realiza la siguiente solicitud de HTTP POST a la API de Partner Procurement:

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

El cuerpo de la solicitud debe tener el plan de la oferta que se aprueba:

{
  "pendingPlanName": PLAN_NAME
}

Después de que se apruebe el cambio, recibirás otro mensaje de Cloud Pub/Sub para confirmar que el cambio ya se efectuó. En el mensaje, el campo eventType cambia a ENTITLEMENT_PLAN_CHANGED. Para verificar el estado de un plan, realiza la siguiente solicitud HTTP GET a la API de Partner Procurement:

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

La respuesta es similar a la siguiente, el campo state indica si el plan nuevo está activo o si el cambio del plan todavía está pendiente:

{
  "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": "",
  ...
}

Completa otras tareas de derechos

Para otras tareas de derechos que no son específicas de las ofertas privadas, consulta la documentación pública de Cloud Marketplace:

Lista de tipos de eventos para tareas de cuentas de ofertas privadas

En la siguiente tabla, se incluyen eventType que tu producto podría recibir en mensajes de Pub/Sub para ofertas privadas.

Si quieres ver la lista completa, consulta la Lista de tipos de eventos para las tareas de la cuenta.

eventType Descripción
ENTITLEMENT_OFFER_ENDED Indica que finalizó la oferta privada de un cliente. La oferta activa un evento ENTITLEMENT_CANCELLED o permanece activa con precios sin descuento.

¿Qué sigue?