Plans de taux d'achat via l'API

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Cette section explique comment souscrire un plan tarifaire publié, et comment faire expirer ou annuler un plan tarifaire acheté, si vous le souhaitez, à l'aide de l'API.

Acheter un plan tarifaire publié à l'aide de l'API

Une fois qu'un plan tarifaire est publié, un développeur ou une entreprise peut l'acheter (ou "l'accepter") en envoyant une requête POST à /mint/organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans, où {org_name} est le nom de l'organisation et {developer_or_company_id} est l'ID du développeur ou de l'entreprise.

Pour éliminer les frais de configuration lors de la souscription d'un plan tarifaire, définissez le paramètre de requête waivefees sur true. Cet indicateur est utile lorsque vous migrez des développeurs vers la monétisation, comme décrit dans Migrer les développeurs vers la monétisation.

Le tableau suivant récapitule les propriétés de configuration que vous pouvez spécifier dans le corps de la requête, leurs valeurs par défaut et si elles sont requises ou non.

Nom Description Par défaut Requis ?
startDate

Date de début du plan tarifaire. Par exemple: 2017-03-24.

N/A Oui
endDate

Date de fin du plan tarifaire. Par exemple: 2017-09-24.

Le plan tarifaire s'applique jusqu'à la fin de la journée à la date spécifiée. Par exemple, si vous voulez qu'un plan tarifaire expire le 1er décembre 2017, définissez la valeur endDate sur 2017-11-30. Dans ce cas, le plan tarifaire expirera le 30 novembre 2017 à la fin de la journée. Toutes les requêtes du 1er décembre 2017 seront bloquées.

N/A Non
developer

propriété id qui définit l'ID du développeur ou de l'entreprise qui achète le plan tarifaire.

N/A Oui
quotaTarget

Nombre cible de transactions autorisées pour le développeur de l'application. Vous pouvez configurer l'envoi des notifications en fonction du pourcentage atteint, par exemple 90%, 100 % ou 150%. Les transactions supplémentaires ne sont pas bloquées une fois le nombre cible atteint.

Définissez cette valeur sur un entier positif ou sur 0 afin de désactiver les notifications pour un développeur d'applications.

0 Non
ratePlan

Propriété id qui définit l'ID du plan tarifaire.

L'ID du plan tarifaire est différent du nom à afficher. Pour afficher les détails du plan tarifaire, y compris l'ID, consultez la section Explorer la page des plans tarifaires.

N/A Oui
suppressWarning

Indique s'il faut supprimer l'erreur si le développeur tente d'acheter un plan tarifaire qui chevauche un autre plan tarifaire. La valeur peut être l'une des suivantes:

  • true : la monétisation met fin à tous les plans tarifaires achetés par le développeur pour les packages d'API contenant les produits d'API en conflit. Il achète ensuite un nouveau package d'API pour le développeur.
  • false : une erreur est générée en cas de chevauchement des plans tarifaires.
N/A Non
waveTerminationCharge

Indique si les frais de résiliation sont exonérés lorsqu'un plan tarifaire actif prend fin lors de l'activation du nouveau plan tarifaire. La valeur peut être l'une des suivantes:

  • true : permet d'annuler les frais de résiliation lorsqu'un plan tarifaire actif prend fin lors de l'activation du nouveau plan tarifaire.
  • false : ne renoncez pas aux frais de résiliation lorsqu'un plan tarifaire actif prend fin lors de l'activation d'un nouveau plan tarifaire.
N/A Non

Par exemple, la requête suivante permet d'acheter le forfait location_&_messaging pour le développeur spécifié:

curl "https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/developers/5cTWgdUvdr6JW3xU/developer-rateplans" \
  -X POST \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "developer":{
     "id":"5cTWgdUvdr6JW3xU"
   },
   "startDate":"2017-08-30",
   "ratePlan":{
     "id":"location_&_messaging"
   },
   "suppressWarning":false
  }'

Dans cet exemple, la propriété suppressWarning est définie sur false. Dans ce cas, une erreur est générée en cas de conflit. Par exemple, si le développeur tente d'acheter un plan tarifaire qui chevauche un autre plan tarifaire acheté, une erreur est générée. Cela permet à une application qui fournit une interface utilisateur de monétisation d'intercepter l'erreur et d'afficher les produits en conflit au développeur pour confirmation (le cas échéant). Si suppressWarning est défini sur true, la monétisation met fin à tous les plans tarifaires achetés par le développeur pour les packages d'API contenant les produits en conflit. Il achète ensuite un nouveau package d'API pour le développeur.

La requête suivante souscrit un plan de taux de notification ajustable et définit le nombre cible de transactions sur 4 000.

curl "https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/developers/5cTWgdUvdr6JW3xU/developer-rateplans" \
  -X POST \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "developer":{
     "id":"5cTWgdUvdr6JW3xU"
   },
   "ratePlan":{
     "id":"adjustable-notification-plan"
   },
   "startDate": "2017-03-24",
   "quotaTarget": 4000,
   "suppressWarning":false
  }'

Dans l'un des exemples ci-dessus, si le message d'erreur suivant est renvoyé:

Developer legal name not specified. 

Vous devez ensuite définir les attributs de monétisation MINT_DEVELOPER_ADDRESS et MINT_DEVELOPER_LEGAL_NAME, puis répéter l'appel d'API.

Expiration d'un plan tarifaire acheté par un développeur à l'aide de l'API

Pour faire expirer (ou annuler) un plan tarifaire acheté par un développeur, mettez à jour ses détails et spécifiez la propriété endDate dans le corps de la requête dans une requête PUT adressée à la ressource /organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans/{developer_rateplan_id}.

Le plan tarifaire s'applique jusqu'à la fin de la journée à la date de fin spécifiée. Par exemple, si vous voulez qu'un plan tarifaire expire le 1er décembre 2017, définissez la valeur endDate sur 2017-11-30. Dans ce cas, le plan tarifaire expirera le 30 novembre 2017 à la fin de la journée. Toutes les requêtes du 1er décembre 2017 seront bloquées.

Le {developer_rateplan_id} est renvoyé dans la réponse lorsque vous achetez le plan tarifaire publié.

Exemple :

{
  "created": "2017-03-31 18:59:54",
  "developer": {
    ...
  },
  "id": "b1c600b8-f871-496d-8173-12b9950d6ab1",
  "quotaTarget": 3000,
  "ratePlan": {
    ...
  },
  "startDate": "2017-03-31 00:00:00",
  "updated": "2017-03-31 18:59:54",
  "waiveTerminationCharge": false
}

Vous pouvez également obtenir le {developer-rateplan-id} pour le plan tarifaire du développeur en envoyant une requête GET à /organizations/{org_name}/developers/{developer_id}/developer-accepted-rateplans, où {developer_id} est l'adresse e-mail du développeur. Pour en savoir plus, consultez la section Afficher tous les plans tarifaires souscrits par un développeur.

La requête suivante met à jour la date de fin au 1er décembre 2017. Autrement dit, le plan tarifaire expirera à la fin de la journée le 30 novembre 2017 et toutes les requêtes du 1er décembre 2017 seront bloquées.

curl "https://api.enterprise.apigee.com/v1/mint/organizations/myorg/developers/dev@mycompany.com/developer-rateplans/b1c600b8-f871-496d-8173-12b9950d6ab1"
  -X PUT \
  -H "Content-Type:application/json" \
  -u email:password \
  -d '{
   "id" : "b1c600b8-f871-496d-8173-12b9950d6ab1",
   "developer":{
     "id":"dev@mycompany.com"
   },
   "ratePlan":{
     "id":"p1_adjustable-notification-plan"
   },
   "startDate": "2017-04-15 00:00:00",
   "endDate": "2017-11-30",
   "quotaTarget": 3000,
   "suppressWarning":false
  }'