Lorsque les clients choisissent un forfait pour votre logiciel, Google crée un droit, qui indique que le client a acheté votre produit sur Cloud Marketplace. Cette section explique comment créer et gérer les droits de vos clients à l'aide de l'API Partner Procurement.
Pour en savoir plus sur la gestion des droits d'accès, consultez le documentation de référence.
Avant de commencer
- Configurez l'accès à l'API partenaire Procurement pour Cloud Commerce, comme décrit dans la section Intégrez votre application.
Si vous avez activé plusieurs commandes du même produit, l'API Partner Procurement peut envoyer plusieurs événements avec le type d'événement ENTITLEMENT_ACTIVE
pour la même valeur de ACCOUNT_ID
, chacun avec un ENTITLEMENT_ID
unique représentant une offre différente. Cela signifie que vous devez vous assurer que la logique de gestion des événements de votre application peut répondre à ENTITLEMENT_ID
au lieu de ACCOUNT_ID
ou PRODUCT_ID
.
Vous devez vous assurer que votre intégration du frontend peut gérer le nouvel objet orders
inclus dans la charge utile JWT. Pour en savoir plus, consultez
Intégrez l'interface de votre application.
Pour en savoir plus sur l'activation de plusieurs commandes du même produit, consultez Activer plusieurs commandes du même produit.
Approuver un droit d'accès
Lorsqu'un client choisit un forfait, Cloud Marketplace crée un et envoie le message Pub/Sub suivant à votre application:
{ "eventId": "...", "eventType": "ENTITLEMENT_CREATION_REQUESTED", "providerId": "YOUR_PARTNER_ID", "entitlement": { "id": "ENTITLEMENT_ID", "updateTime": "...", "newOfferDuration": "P2Y3M", // Contract duration for offer-based entitlements }, }
où ENTITLEMENT_ID est un ID créé par Cloud Marketplace. Si une durée est spécifiée pour l'offre, elle est indiquée en années et en mois. Si une date de fin est spécifiée pour l'offre au lieu d'une durée, le champ indiquant la durée est vide.
Dans votre système, mettez à jour le compte de l'utilisateur pour indiquer qu'il a souscrit un forfait. Pour approuver le droit, envoyez une requête HTTP POST
à l'API Partner Procurement et envoyez l'ID ENTITLEMENT_ID que vous approuvez :
POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:approve
Refuser un droit d'accès
Pour refuser un droit d'accès, envoyez une requête HTTP POST
au
l'API Partner Procurement et utilisez la méthode reject
dans votre requête:
POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:reject
Pour indiquer le motif du refus du droit d'accès dans le corps de la requête, utilisez le format suivant :
{ "reason": "..." }
Modifier un forfait
En fonction de la configuration de vos forfaits, vos clients pourront peut-être modifier le leur. Si un client sélectionne un nouveau forfait, vous recevez un message Pub/Sub, au format suivant :
{ "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 }, }
Si une durée est spécifiée pour l'offre, elle est indiquée en années et en mois. Si une date de fin est spécifiée pour l'offre au lieu d'une durée, le champ indiquant la durée est vide.
Pour approuver la modification du forfait, adressez la requête HTTP POST
suivante à l'API Partner Procurement :
POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:approvePlanChange
L'organisme demandeur doit avoir le plan en cours d'approbation :
{
"pendingPlanName": PLAN_NAME
}
Une fois la modification approuvée, vous recevez un autre message Pub/Sub lorsque la modification prend effet. Dans le message, le champ eventType
devient ENTITLEMENT_PLAN_CHANGED
. Pour vérifier l'état d'un plan, envoyez la requête HTTP GET
suivante à l'API Partner Procurement.
GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID
La réponse est semblable à la suivante, le champ state
indiquant si le nouveau forfait est actif ou si la modification du forfait est toujours en attente :
{ "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", ... }
Annuler un droit d'accès
Si un utilisateur décide d'annuler son droit d'accès, vous recevez une notification Pub/Sub. Tout comme la modification d'un forfait, l'annulation peut prendre effet à la fin du cycle de facturation en cours.
La notification est au format suivant :
{ "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": "..." }, }
Supprimer un droit d'accès
Si un utilisateur envoie une demande directe à l'assistance Google ou quitte la plate-forme Google, ses droits d'accès sont immédiatement annulés, et ses droits et ses comptes sont supprimés après un délai de grâce de 60 jours. Pour protéger la vie privée de l'utilisateur, vous devez supprimer ses données de vos serveurs dès que vous en êtes informé.
Une fois les droits d'accès et le compte supprimés, vous recevez des notifications semblables à celles-ci :
{ "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 des types d'événements pour les tâches de compte
Voici une liste des eventType
que votre application peut recevoir dans les messages Pub/Sub :
eventType | Description |
---|---|
ACCOUNT_CREATION_REQUESTED | Obsolète |
ACCOUNT_ACTIVE | Indique que le compte du client a été créé. |
ACCOUNT_DELETED | Indique que le compte du client a été supprimé des systèmes Google Cloud. |
ENTITLEMENT_CREATION_REQUESTED | Indique qu'un client a sélectionné l'un de vos forfaits. |
ENTITLEMENT_OFFER_ACCEPTED | Indique qu'une offre a été acceptée par un client. Inclut l'heure de début prévue de l'offre, le cas échéant. Cet événement est envoyé à la fois pour les offres privées et les offres standards (achats publics). |
ENTITLEMENT_ACTIVE | Indique que le forfait choisi par un client est maintenant actif. |
ENTITLEMENT_PLAN_CHANGE_REQUESTED | Indique qu'un client a choisi un nouveau forfait. |
ENTITLEMENT_PLAN_CHANGED | Indique que la modification du forfait d'un client est approuvée et que les modifications sont entrées en vigueur. |
ENTITLEMENT_PLAN_CHANGE_CANCELLED | Indique que le changement de forfait d'un client a été annulé, soit parce qu'il n'a pas été approuvé, soit parce le client est revenu à son ancien forfait. |
ENTITLEMENT_PENDING_CANCELLATION | Indique qu'un client a annulé son forfait et que l'annulation est en attente jusqu'à la fin du cycle de facturation. |
ENTITLEMENT_CANCELLATION_REVERTED | Indique que l'annulation en attente d'un client a été annulée. Notez que les annulations ne peuvent pas être annulées une fois qu'elles sont définitives. |
ENTITLEMENT_CANCELLED | Indique que le forfait d'un client a été annulé. |
ENTITLEMENT_CANCELLING | Indique que le forfait d'un client est en cours d'annulation. |
ENTITLEMENT_RENEWED | Indique que le droit d'accès d'un client a été renouvelé pour une autre période. Aucune action de votre part n'est requise de votre part.. |
ENTITLEMENT_OFFER_ENDED | Indique que l'offre privée d'un client est arrivée à expiration. Si le droit d'accès du client a été annulé, un événement ENTITLEMENT_CANCELLED distinct est déclenché. Si le droit d'accès du client est toujours actif, son forfait inclut un prix sans remise. |
ENTITLEMENT_DELETED | Indique que des informations sur le forfait d'un client ont été supprimées de Cloud Marketplace. |