Integrazione del backend dell'app SaaS per offerte private

Questa pagina spiega come integrare il backend del prodotto SaaS per le offerte private, versione 2, disponibile su Producer Portal.

Questi passaggi non sono necessari per i prodotti VM. Per ulteriori istruzioni sull'utilizzo dei diritti per monitorare l'utilizzo, consulta la documentazione per l'integrazione del backend dell'app.

Prima di iniziare

  • Il tuo prodotto deve essere integrato ed essere elencato su Google Cloud Marketplace. Almeno uno dei tuoi piani tariffari deve essere disponibile pubblicamente.

  • Devi aver integrato il prodotto in Producer Portal e integrato il backend dell'app per il piano tariffario che stai utilizzando per l'offerta. Per i passaggi, consulta Integrazione del backend dell'app.

Gestione dei diritti

Quando un cliente acquista un'offerta privata, Google crea un diritto, che indica che il cliente ha acquistato l'offerta da Google Cloud Marketplace. Questa sezione esamina come gestire i diritti delle tue offerte private utilizzando l'API Partner Procurement.

Per maggiori dettagli sull'utilizzo dell'API Partner Procurement per le offerte private, consulta la documentazione di riferimento.

Alcune attività di gestione, come l'approvazione dei diritti, possono essere eseguite in Producer Portal quando visualizzi il tuo elenco di offerte.

Approvare o rifiutare un diritto

Quando un cliente acquista un'offerta privata, Google Cloud Marketplace crea un diritto e invia il seguente messaggio Pub/Sub alla tua applicazione:

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

dove ENTITLEMENT_ID è un ID creato da Google Cloud Marketplace.

Se l'offerta è stata creata con una durata, il messaggio mostra la durata in anni e mesi e il campo newOfferEndTime sarà vuoto. Se l'offerta è stata creata con un'ora di fine specificata, il messaggio visualizza l'ora di fine dell'offerta e il campo newOfferDuration sarà vuoto.

Nel tuo sistema, aggiorna l'account dell'utente in modo che rifletta il fatto che ha acquistato l'offerta. Quindi, per approvare il diritto, fai una richiesta HTTP POST all'API Partner Procurement e invia l'ENTITLEMENT_ID che stai approvando:

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

Per rifiutare un diritto, utilizza invece il metodo reject nella richiesta HTTP POST:

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

Sostituzione di un'offerta attiva

A seconda di come hai configurato l'offerta privata, il cliente potrebbe riuscire a sostituirla. Se un cliente seleziona una nuova offerta privata, riceverai un messaggio Pub/Sub nel seguente 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
  },
}

dove OFFER2 è l'offerta sostitutiva e ENTITLEMENT_ID è un ID creato da Google Cloud Marketplace. La durata dell'offerta viene specificata in anni e mesi.

Per approvare la sostituzione dell'offerta, effettua la seguente richiesta HTTP POST all'API Partner Procurement:

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

Il corpo della richiesta deve avere il piano per l'offerta approvata:

{
  "pendingPlanName": PLAN_NAME
}

Dopo l'approvazione della modifica, riceverai un altro messaggio Pub/Sub quando la modifica sarà effettiva. Nel messaggio, il campo eventType diventa ENTITLEMENT_PLAN_CHANGED. Per controllare lo stato di un piano, effettua la seguente richiesta all'API Partner Procurement HTTP GET.

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

La risposta è simile alla seguente, con il campo dello stato che indica se la nuova offerta è attiva o se la modifica dell'offerta è ancora in attesa:

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

Completare altre attività relative ai diritti

Per altre attività relative ai diritti, consulta la documentazione pubblica di Google Cloud Marketplace:

Elenco di tipi di eventi per le attività degli account con offerta privata

La seguente tabella include i eventType che la tua app potrebbe ricevere nei messaggi Pub/Sub per le offerte private.

Per l'elenco completo, consulta Elenco dei tipi di eventi per le attività dell'account.

Tipo di evento Descrizione
ENTITLEMENT_OFFER_ENDED Indica che l'offerta privata di un cliente è terminata. L'offerta attiva un evento ENTITLEMENT_CANCELLED o rimane attivo con prezzi non scontati.