Kundenberechtigungen für Ihr SaaS-Produkt verwalten

Wenn Kunden ein Preismodell für Ihre Software auswählen, erstellt Google ein entitlement gibt an, dass der Kunde Ihr Produkt bei Cloud Marketplace In diesem Abschnitt wird beschrieben, wie Sie über die Partner Procurement API Ansprüche für Ihre Kunden erstellen und verwalten können.

Weitere Informationen zum Verwalten von Berechtigungen finden Sie in der Referenzdokumentation.

Hinweis

  • Richten Sie den Zugriff auf die Cloud Commerce Partner Procurement API ein, wie unter App einbinden:

Wenn Sie mehrere Bestellungen desselben Produkts aktiviert haben, kann die Partner Procurement API mehrere Ereignisse mit dem Ereignistyp ENTITLEMENT_ACTIVE für denselben Wert ACCOUNT_ID senden, jeweils mit einer eindeutigen ENTITLEMENT_ID, die ein anderes Angebot darstellt. Das bedeutet, dass Sie Achte darauf, dass die Ereignisverarbeitungslogik deiner App auf den ENTITLEMENT_ID reagieren kann. anstelle von ACCOUNT_ID oder PRODUCT_ID.

Sie müssen dafür sorgen, dass Ihre Front-End-Integration den neuen orders verarbeiten kann. in der JWT-Nutzlast enthalten ist. Weitere Informationen finden Sie unter Binden Sie das Front-End Ihrer Anwendung ein.

Weitere Informationen zum Aktivieren mehrerer Bestellungen desselben Produkts finden Sie unter Mehrere Bestellungen desselben Produkts aktivieren.

Berechtigung genehmigen

Wenn ein Kunde ein Preismodell auswählt, erstellt Cloud Marketplace ein Berechtigung und sendet die folgende Pub/Sub-Nachricht an die Anwendung:

{
  "eventId": "...",
  "eventType": "ENTITLEMENT_CREATION_REQUESTED",
  "providerId": "YOUR_PARTNER_ID",
  "entitlement": {
    "id": "ENTITLEMENT_ID",
    "updateTime": "...",
    "newOfferDuration": "P2Y3M",   // Contract duration for offer-based entitlements
  },
}

Dabei ist ENTITLEMENT_ID eine von Cloud Marketplace erstellte ID. Hat das Angebot eine bestimmte Dauer, wird diese in Jahren und Monate. Wenn für das Angebot anstelle einer Dauer ein Enddatum angegeben ist, wird im Feld gibt an, dass die Dauer leer ist.

Aktualisieren Sie in Ihrem System das Konto des Nutzers, um anzuzeigen, dass er ein Abo erworben hat. Senden Sie zum Genehmigen der Berechtigung eine HTTP POST-Anfrage an die Partnerbeschaffungs-API und senden Sie die ENTITLEMENT_ID, die Sie genehmigen:

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

Berechtigung ablehnen

Um eine Berechtigung abzulehnen, senden Sie eine HTTP POST-Anfrage an den Partner Procurement API und verwenden Sie in Ihrer Anfrage die Methode reject:

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

Wenn Sie im Anfragetext einen Grund für die Ablehnung der Berechtigung angeben möchten, verwenden Sie das folgende Format:

{
  "reason": "..."
}

Berechtigungsmodell ändern

Je nachdem, wie Sie Ihr Preismodell eingerichtet haben, können Ihre Kunden gegebenenfalls ein anderes Angebot wählen. Wenn ein Kunde einen neuen Preismodell auswählt, erhalten Sie eine Pub/Sub-Nachricht im folgenden Format:

{
  "eventId": "...",
  "eventType": "ENTITLEMENT_PLAN_CHANGE_REQUESTED",
  "providerId": "YOUR_PARTNER_ID",
  "entitlement": {
    "id": "ENTITLEMENT_ID",
    "newPlan": "ultimate",   // New plan
    "updateTime": "...",
    "newOfferDuration": "P2Y3M",   // Contract duration for the new offer, for offer-based entitlements
  },
}

Wenn das Angebot eine bestimmte Dauer hat, wird diese in Jahren und Monaten angegeben. Wenn für das Angebot anstelle einer Dauer ein Enddatum angegeben ist, wird im Feld gibt an, dass die Dauer leer ist.

Stellen Sie zum Genehmigen des Tarifwechsels die folgende HTTP POST-Anfrage an die Partner-API:

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

Die Antragsstelle muss den Tarif haben, der genehmigt wird:

{
  "pendingPlanName": PLAN_NAME
}

Nachdem der Wechsel genehmigt wurde, erhalten Sie eine weitere Pub/Sub-Nachricht, wenn der Wechsel wirksam wird. In der Nachricht ändert sich das Feld eventType in ENTITLEMENT_PLAN_CHANGED. Stellen Sie zum Prüfen des Status eines Tarifs die folgende HTTP GET-Anfrage an die Partnerbeschaffungs-API.

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

Die Antwort ähnelt der folgenden: Das Feld state gibt an, ob der neue Tarif aktiv ist oder ob der Tarifwechsel noch aussteht.

{
  "name": "providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID",
  "provider": "YOUR_PARTNER_ID",
  "account": "USER_ACCOUNT_ID",
  "product": "example-server",
  "plan": "pro",
  "state": "ENTITLEMENT_PENDING_PLAN_CHANGE",
  "newPendingPlan": "ultimate",
  ...
}

Berechtigung kündigen

Wenn ein Nutzer sich entscheidet, seine Berechtigung zu stornieren, erhalten Sie eine Cloud Pub/Sub-Benachrichtigung. Ähnlich wie bei einem Wechsel des Preismodells kann die tatsächliche Stornierung am Ende des aktuellen Abrechnungszyklus wirksam werden.

Die Benachrichtigung hat folgendes Format:

{
  "eventId": "...",
  // If the entitlement is canceled at the end of the month,
  // eventType is ENTITLEMENT_PENDING_CANCELLATION
  "eventType": "ENTITLEMENT_CANCELLED",
  "providerId": "YOUR_PARTNER_ID",
  "entitlement": {
    "id": "ENTITLEMENT_ID",
    "updateTime": "..."
  },
}

Berechtigung löschen

Wenn ein Nutzer eine direkte Anfrage an den Google-Support stellt oder das Google werden ihre Berechtigungen sofort widerrufen und ihre Berechtigung und Konten werden nach einem Kulanzzeitraum von 60 Tagen gelöscht. Sie müssen die Daten von Ihren Servern löschen, sobald Sie benachrichtigt wurden, um die Privatsphäre des Nutzers zu schützen.

Wenn die Berechtigungen storniert und das Konto gelöscht wird, erhalten Sie Benachrichtigungen, die den folgenden ähneln:

{
  "eventId": "...",
  "eventType": "ENTITLEMENT_DELETED",
  "providerId": "YOUR_PARTNER_ID",
  "entitlement": {
    "id": "ENTITLEMENT_ID",
    "updateTime": "...",
  },
}
{
  "eventId": "...",
  "eventType": "ACCOUNT_DELETED",
  "providerId": "YOUR_PARTNER_ID",
  "account": {
    "id": "USER_ACCOUNT_ID",
    "updateTime": "...",
  },
}

Liste der Ereignistypen für Kontoaufgaben

Das Folgende ist eine Liste der eventType s, die Ihre Anwendung möglicherweise in Pub/Sub-Nachrichten empfängt:

eventTypeBeschreibung
ACCOUNT_CREATION_REQUESTEDVeraltet
ACCOUNT_ACTIVEZeigt an, dass das Kundenkonto erstellt wurde.
ACCOUNT_DELETEDZeigt an, dass das Kundenkonto aus Google Cloud-Systemen gelöscht wurde.
ENTITLEMENT_CREATION_REQUESTEDZeigt an, dass ein Kunde einen Ihrer Preispläne ausgewählt hat.
ENTITLEMENT_OFFER_ACCEPTEDGibt an, dass ein Angebot von einem Kunden angenommen wurde. Enthält den geplanten Beginn des Angebots, falls vorhanden. Dieses Ereignis wird sowohl für private als auch für Standardangebote (öffentliche Käufe) gesendet.
ENTITLEMENT_ACTIVEZeigt an, dass der von einem Kunden ausgewählte Tarif jetzt aktiv ist.
ENTITLEMENT_PLAN_CHANGE_REQUESTEDZeigt an, dass ein Kunde einen neuen Tarif ausgewählt hat.
ENTITLEMENT_PLAN_CHANGEDZeigt an, dass der Tarifwechsel eines Kunden genehmigt wurde und die Änderungen wirksam wurden.
ENTITLEMENT_PLAN_CHANGE_CANCELLEDZeigt an, dass der Tarifwechsel eines Kunden abgebrochen wurde, entweder weil er nicht genehmigt wurde oder weil er zu seinem alten Tarif zurückgekehrt ist.
ENTITLEMENT_PENDING_CANCELLATIONZeigt an, dass ein Kunde seinen Tarif storniert hat und die Stornierung bis zum Ende des Abrechnungszyklus aussteht.
ENTITLEMENT_CANCELLATION_REVERTEDZeigt an, dass die ausstehende Stornierung eines Kunden zurückgesetzt wurde. Beachten Sie, dass Stornierungen nicht mehr rückgängig gemacht werden können, nachdem sie endgültig sind.
ENTITLEMENT_CANCELLEDZeigt an, dass der Tarif eines Kunden storniert wurde.
ENTITLEMENT_CANCELLINGZeigt an, dass der Tarif eines Kunden gerade storniert wird.
ENTITLEMENT_RENEWEDZeigt an, dass die Berechtigung eines Kunden um einen anderen Zeitraum verlängert wurde. Sie müssen nichts unternehmen, um die Verlängerung abzuschließen.
ENTITLEMENT_OFFER_ENDEDZeigt an, dass das private Angebot eines Kunden beendet wurde. Wenn die Berechtigung des Kunden storniert wurde, wird ein separates ENTITLEMENT_CANCELLED-Ereignis ausgelöst. Wenn die Berechtigung des Kunden noch aktiv ist, wird das Abo auf die nicht rabattierten Preise zurückgesetzt.
ENTITLEMENT_DELETEDZeigt an, dass Informationen zum Tarif eines Kunden aus dem Cloud Marketplace gelöscht wurden.