Cómo administrar los derechos de las ofertas privadas

Cuando un cliente compra una oferta privada, Google crea un derecho, 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 mediante la API de Partner Procurement.

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

Aprueba un derecho

Cuando un cliente compra una oferta privada, Cloud Marketplace crea una 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 especificada, el mensaje muestra la hora de finalización de la oferta y el campo newOfferDuration está vacío.

En tu sistema, actualiza la cuenta del usuario para reflejar que compró oferta. Luego, para aprobar el derecho, realiza una solicitud HTTP POST al API de Partner Procurement y enviar el ENTITLEMENT_ID que estás aprobación:

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

Cómo rechazar un derecho

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

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

Cómo reemplazar una oferta activa

Según cómo configures tu oferta privada, es posible que el cliente reemplazar su oferta. Si un cliente selecciona una nueva oferta privada, 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 al 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, haz lo 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 sean específicas de las ofertas privadas, consulta el Documentación pública de Cloud Marketplace:

Lista de tipos de eventos para tareas de la cuenta de ofertas privadas

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

Para ver la lista completa, consulta 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?