Planos de tarifas de compra usando a API

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

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

Como comprar um plano de tarifas publicado usando a API

Depois que um plano de preços é publicado, um desenvolvedor ou uma empresa pode comprar (ou "aceitar") o plano 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 flag é útil quando você está migrando desenvolvedores para a monetização, conforme descrito em Como migrar desenvolvedores para a 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 obrigatórias ou não.

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

Data em que o plano de tarifas começa. Por exemplo: 2017-03-24.

N/A Sim
endDate

Data em que o plano de taxas termina. Por exemplo: 2017-09-24.

O plano de tarifas vai estar em vigor até o final 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 preços vai expirar no final do dia 30 de novembro de 2017. Todas as solicitações em 1º de dezembro de 2017 serão bloqueadas.

N/A Não
developer

Propriedade id que define o ID do desenvolvedor ou da empresa que está comprando o plano de preços.

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 são enviadas com base na porcentagem do número de destino que foi alcançada, como 90%, 100% ou 150%. As transações adicionais não são bloqueadas depois que o número de destino é 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

A propriedade id que define o ID do plano de tarifas.

O ID do plano de tarifas é diferente do nome de exibição. Para conferir os detalhes do plano de tarifas, incluindo o ID, consulte a página "Explorar os planos de tarifas".

N/A Sim
suppressWarning

Flag que especifica se o erro será suprimido se o desenvolvedor tentar comprar um plano de tarifas que se sobrepõe a outro plano de tarifas comprado. O valor pode ser um destes:

  • true: a monetização encerra todos os planos de tarifas comprados que o desenvolvedor tem para pacotes de API que contêm os produtos de API em conflito. Em seguida, ele compra um novo pacote de API para o desenvolvedor.
  • false: um erro é gerado no caso de um plano de taxa 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 de tarifas. 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 de tarifas.
  • false: não isentar a taxa de rescisão quando um plano de taxas ativo for rescindido como parte da ativação de um novo plano de taxas.
N/A Não

Por exemplo, a solicitação a seguir compra o plano de taxas 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 em caso de conflito. Por exemplo, se o desenvolvedor tentar comprar um plano de tarifas que se sobrepõe a outro, um erro será gerado. Isso permite que um aplicativo que ofereça uma interface do usuário para a monetização intercepte o erro e mostre os produtos em conflito ao desenvolvedor para confirmação (conforme apropriado). Se suppressWarning estiver definido como true, a monetização vai encerrar todos os planos de tarifas comprados que o desenvolvedor tiver para pacotes de API que contêm os produtos em conflito. 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 de transações desejado 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 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.

Como fazer um plano de tarifas comprado por um desenvolvedor expirar usando a API

Para expirar ou cancelar um plano de tarifas comprado por um desenvolvedor, atualize os detalhes do plano de tarifas adquirido 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 tarifas vai entrar em vigor até o final 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 preços vai expirar no final do dia 30 de novembro de 2017. Todas as solicitações em 1º 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 receber o {developer-rateplan-id} do plano de taxas para desenvolvedores 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 Visualizar todos os planos de tarifas comprados por um desenvolvedor.

A solicitação a seguir atualiza a data de término para 1º de dezembro de 2017. Ou seja, o plano de tarifas expira no final do dia, em 30 de novembro de 2017. Todas as solicitações de 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
  }'