Planos de tarifas de compra usando a API

Você está vendo a documentação do Apigee Edge.
Acesse a documentação da Apigee X.
informações

Nesta seção, descrevemos como comprar um plano de tarifas publicado e como expirar ou cancelar um plano comprado, se você quiser, usando a API.

Como comprar um plano de tarifa publicado usando a API

Depois que um plano de tarifas é publicado, o desenvolvedor ou a empresa pode comprá-lo (ou "aceitar") emitindo uma solicitação POST para /mint/organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans, em que {org_name} é o nome da organização e {developer_or_company_id} é o ID do desenvolvedor ou da empresa.

Para dispensar as taxas de configuração ao comprar um plano de tarifas, defina o parâmetro de consulta waivefees como true. Essa sinalização é útil ao migrar desenvolvedores para monetização, conforme descrito em Migrar desenvolvedores para monetização.

A tabela a seguir resume as propriedades de configuração que podem ser especificadas no corpo da solicitação, os valores padrão e se elas são necessárias ou não.

Nome Descrição Padrão Obrigatório?
startDate

Data de início do plano de tarifa. Por exemplo: 2017-03-24.

N/A Sim
endDate

Data de término do plano de tarifa. Por exemplo: 2017-09-24.

O plano de tarifa vai entrar em vigor até o fim do dia na data especificada. Se você quiser que um plano de tarifas expire em 1o de dezembro de 2017, por exemplo, defina o valor de endDate como 2017-11-30. Nesse caso, o plano de tarifação expira no final do dia, em 30 de novembro de 2017. Todas as solicitações de 1o de dezembro de 2017 serão bloqueadas.

N/A Não
developer

id que define o ID do desenvolvedor ou da empresa que está comprando o plano de tarifas.

N/A Sim
quotaTarget

Número desejado de transações permitidas para o desenvolvedor do app. É possível configurar se e quando as notificações serão enviadas com base na porcentagem do número de destino que foi alcançada (por exemplo, 90%, 100% ou 150%). Outras transações não são bloqueadas depois que o número desejado é alcançado.

Defina esse valor como um número inteiro positivo ou 0 para desativar as notificações de um desenvolvedor de apps.

0 Não
ratePlan

id que define o ID do plano de tarifa.

Esse ID é diferente do nome de exibição. Para ver os detalhes do plano de tarifas, incluindo o ID, consulte Como explorar a página dos planos de preços.

N/A Sim
suppressWarning

Sinalização que especifica se é necessário eliminar o erro caso o desenvolvedor tente comprar um plano de tarifas que se sobreponha a outro plano de tarifas comprado. O valor pode ser um dos seguintes:

  • true: a monetização encerra todos os planos de preços comprados que o desenvolvedor tem para pacotes de API que contêm os produtos de API conflitantes. Em seguida, ele compra um novo pacote de API para o desenvolvedor.
  • false: um erro é gerado caso haja um plano de tarifas sobreposto.
N/A Não
waveTerminationCharge

Sinalização que especifica se as taxas de rescisão são dispensadas quando um plano de tarifas ativo é encerrado como parte da ativação do novo plano. O valor pode ser um dos seguintes:

  • true: isentar a taxa de rescisão quando um plano de tarifas ativo for encerrado como parte da ativação do novo plano.
  • false: não renuncia à taxa de rescisão quando um plano de tarifas ativo for encerrado como parte da ativação do novo plano.
N/A Não

Por exemplo, a solicitação a seguir compra o plano de tarifas location_&_messaging para o desenvolvedor 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
  }'

Neste exemplo, a propriedade suppressWarning está definida como false. Nesse caso, um erro será gerado no caso de um conflito. Por exemplo, se o desenvolvedor tentar comprar um plano de preços que se sobrepõe a outro plano comprado, um erro será gerado. Isso permite que um aplicativo que oferece uma interface de usuário para monetização intercepte o erro e exiba os produtos conflitantes ao desenvolvedor para confirmação (conforme apropriado). Se suppressWarning for definido como true, a monetização encerrará todos os planos de preços comprados que o desenvolvedor tiver para pacotes de API que contêm os produtos conflitantes. Em seguida, ele compra um novo pacote de API para o desenvolvedor.

A solicitação a seguir compra um plano de taxa de notificação ajustável e define o número desejado de transações como 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
  }'

Em qualquer um dos exemplos acima, se a seguinte mensagem de erro for retornada:

Developer legal name not specified. 

Em seguida, defina os atributos de monetização MINT_DEVELOPER_ADDRESS e MINT_DEVELOPER_LEGAL_NAME e repita a chamada de API.

Expiração de um plano de tarifa comprado por um desenvolvedor usando a API

Para expirar ou cancelar um plano de tarifas comprado por um desenvolvedor, atualize os detalhes dele e especifique a propriedade endDate no corpo da solicitação em uma solicitação PUT para o recurso /organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans/{developer_rateplan_id}.

O plano de tarifa vai entrar em vigor até o fim do dia na data de término especificada. Se você quiser que um plano de tarifas expire em 1o de dezembro de 2017, por exemplo, defina o valor de endDate como 2017-11-30. Nesse caso, o plano de tarifação expira no final do dia, em 30 de novembro de 2017. Todas as solicitações feitas em 1o de dezembro de 2017 serão bloqueadas.

O {developer_rateplan_id} é retornado na resposta quando você compra o plano de tarifas publicado.

Exemplo:

{
  "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, é possível conseguir o {developer-rateplan-id} do plano de tarifas do desenvolvedor emitindo uma solicitação GET para /organizations/{org_name}/developers/{developer_id}/developer-accepted-rateplans, em que {developer_id} é o endereço de e-mail do desenvolvedor. Para mais informações, consulte Como visualizar todos os planos de preços comprados por um desenvolvedor.

A solicitação a seguir atualiza a data de término para 1o de dezembro de 2017. Ou seja, o plano de tarifa expira no final do dia, em 30 de novembro de 2017. Todas as solicitações feitas em 1o de dezembro de 2017 serão bloqueadas.

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