Integra el backend de tu aplicación de SaaS para ofertas privadas

En esta página, se explica cómo integrar el backend de tu producto de SaaS para ofertas privadas, versión 2, disponible en el Producer Portal.

Estos pasos no son necesarios para los productos de VM. Si deseas obtener instrucciones adicionales sobre el uso de derechos para realizar un seguimiento del uso, consulta la documentación sobre la integración del backend de tu app.

Antes de comenzar

  • Tu producto debe estar integrado en Google Cloud Marketplace y enumerado. Al menos uno de tus planes de precios debe estar disponible de forma pública.

  • Debes haber integrado el producto en Producer Portal y haber integrado el backend de tu app para el plan de precios que usas en la oferta. Para ver los pasos, visita Cómo integrar el backend de tu app.

Administra autorizaciones

Cuando un cliente compra una oferta privada, Google crea una autorización, que indica que el cliente compró la oferta en Google Cloud Marketplace. En esta sección, se revisa cómo administrar los derechos de las ofertas privadas con la API de Partner Procurement.

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

Algunas tareas de administración, como la aprobación de derechos, se pueden realizar en Producer Portal cuando se visualiza la lista de ofertas.

Aprueba o rechaza una autorización

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

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

En el ejemplo anterior, ENTITLEMENT_ID es un ID creado por Google Cloud Marketplace.

Si la oferta se creó con una duración, el mensaje mostrará la duración en años y meses, y el campo newOfferEndTime estará 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 HTTP POST a la API de Partner Procurement y envía el ENTITLEMENT_ID que aprobaste:

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

Para rechazar una autorización, 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 reemplazarla. 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 el ejemplo anterior, OFFER2 es la oferta de reemplazo y ENTITLEMENT_ID es un ID creado por Google 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 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 para la oferta que se apruebe:

{
  "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/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID",
  "provider": "YOUR_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 autorización

Para obtener más información sobre otras tareas con derechos, consulta la documentación pública de Google Cloud Marketplace:

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

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

Para ver la lista completa, consulta Lista de tipos de eventos para 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.