Planes de tarifas de compra que usan la API

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

En esta sección, se describe cómo comprar un plan de tarifas publicado y cómo vencer o cancelar un plan de tarifas comprado, si lo deseas, con la API.

Comprar un plan de tarifas publicado con la API

Después de que se publica un plan de tarifas, un desarrollador o una empresa pueden comprarlo (o “aceptar”) enviando una solicitud POST a /mint/organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans, en la que {org_name} es el nombre de la organización y {developer_or_company_id} es el ID del desarrollador o la empresa.

Para renunciar a las tarifas de configuración cuando compres un plan de tarifas, establece el parámetro de consulta waivefees en true. Esta marca es útil cuando migras desarrolladores a la monetización, como se describe en Cómo migrar desarrolladores a la monetización.

En la siguiente tabla, se resumen las propiedades de configuración que puedes especificar en el cuerpo de la solicitud, sus valores predeterminados y si son necesarios o no.

Nombre Descripción Predeterminada ¿Obligatorio?
startDate

Fecha en la que comienza el plan de tarifas. Por ejemplo: 2017-03-24.

No disponible
endDate

Fecha en la que finaliza el plan de tarifas. Por ejemplo: 2017-09-24.

El plan de tarifas estará vigente hasta el final del día en la fecha especificada. Por ejemplo, si quieres que un plan de tarifas venza el 1 de diciembre de 2017, debes configurar el valor de endDate en 2017-11-30. En este caso, el plan de tarifas vencerá al final del día el 30 de noviembre de 2017 y se bloquearán todas las solicitudes del 1 de diciembre de 2017.

No disponible No
developer

Es la propiedad id que define el ID del desarrollador o la empresa que adquiere el plan de tarifas.

No disponible
quotaTarget

Cantidad objetivo de transacciones permitidas para el desarrollador de apps. Puedes configurar si se enviarán las notificaciones y cuándo se realizará en función del porcentaje que se haya alcanzado, como el 90%, el 100% o el 150%. Las transacciones adicionales no se bloquean después de que se alcanza la cantidad objetivo.

Establece este valor en un número entero positivo o 0 para inhabilitar las notificaciones para el desarrollador de apps.

0 No
ratePlan

Es la propiedad id que define el ID del plan de tarifas.

El ID del plan de tarifas es distinto del nombre visible. Para ver los detalles del plan de tarifas, incluido el ID, consulta Explora la página de los planes de tarifas.

No disponible
suppressWarning

Marca que especifica si se debe suprimir el error si el desarrollador intenta comprar un plan de tarifas que se superpone con otro plan de tarifas comprado. El valor puede ser uno de los siguientes:

  • true: La monetización cancela todos los planes de tarifas comprados que tiene el desarrollador para los paquetes de API que contienen los productos de API en conflicto. Luego, compra un nuevo paquete de API para el desarrollador.
  • false: Se arroja un error en el caso de que haya un plan de tarifas superpuesto.
No disponible No
waveTerminationCharge

Marca que especifica si se renuncian las tarifas de rescisión cuando se cancela un plan de tarifas activo como parte de la activación del nuevo plan de tarifas. El valor puede ser uno de los siguientes:

  • true: Renuncia a la tarifa de cancelación cuando se rescinda un plan de tarifas activo como parte de la activación del nuevo plan de tarifas.
  • false: No renuncie a la tarifa de cancelación cuando se rescinda un plan de tarifas activo como parte de la activación del nuevo plan de tarifas.
No disponible No

Por ejemplo, la siguiente solicitud compra el plan de tarifas location_&_messaging para el desarrollador especificado:

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
  }'

En este ejemplo, la propiedad suppressWarning se establece en false. En ese caso, se mostrará un error en caso de conflicto. Por ejemplo, si el desarrollador intenta comprar un plan de tarifas que se superpone con otro, se mostrará un error. Esto permite que una aplicación que proporciona una interfaz de usuario para monetización intercepte el error y muestre los productos en conflicto al desarrollador para su confirmación (según corresponda). Si suppressWarning se configura como true, la monetización cancela todos los planes de tarifas comprados que el desarrollador tiene para los paquetes de API que contienen los productos en conflicto. Luego, compra un nuevo paquete de API para el desarrollador.

La siguiente solicitud compra un plan de tasa de notificaciones ajustable y establece la cantidad objetivo de transacciones en 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
  }'

En cualquiera de los ejemplos anteriores, si se muestra el siguiente mensaje de error:

Developer legal name not specified. 

Luego, debes configurar los atributos de monetización MINT_DEVELOPER_ADDRESS y MINT_DEVELOPER_LEGAL_NAME, y repetir la llamada a la API.

Vencimiento de un plan de tarifas comprado por un desarrollador con la API

Para vencer (o cancelar) un plan de tarifas comprado por un desarrollador, actualiza los detalles del plan de tarifas comprado y especifica la propiedad endDate en el cuerpo de la solicitud en una solicitud PUT para el recurso /organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans/{developer_rateplan_id}.

El plan de tarifas estará vigente hasta el final del día de la fecha de finalización especificada. Por ejemplo, si quieres que un plan de tarifas venza el 1 de diciembre de 2017, debes configurar el valor de endDate en 2017-11-30. En este caso, el plan de tarifas vencerá al final del día el 30 de noviembre de 2017 y se bloquearán todas las solicitudes del 1 de diciembre de 2017.

{developer_rateplan_id} se muestra en la respuesta cuando compras el plan de tarifas publicado.

Por ejemplo:

{
  "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
}

Como alternativa, puedes obtener el {developer-rateplan-id} para el plan de tarifas del desarrollador mediante una solicitud GET a /organizations/{org_name}/developers/{developer_id}/developer-accepted-rateplans, en la que {developer_id} es la dirección de correo electrónico del desarrollador. Para obtener más información, consulta Cómo ver todos los planes de tarifas comprados por un desarrollador.

La siguiente solicitud actualiza la fecha de finalización al 1 de diciembre de 2017. Es decir, el plan de tarifas vencerá al final del día el 30 de noviembre de 2017 y se bloquearán todas las solicitudes del 1 de diciembre de 2017.

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
  }'