Как покупать тарифные планы с помощью API

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

В этом разделе рассказывается, как с помощью API приобрести опубликованный тарифный план, а также при необходимости отменить или аннулировать его.

Как купить опубликованный тарифный план с помощью API

После публикации тарифного плана разработчик или компания может приобрести его, отправив запрос POST на адрес /mint/organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans, где {org_name} – название организации, а {developer_or_company_id} – идентификатор разработчика или компании.

Чтобы при покупке тарифного плана не взималась плата за настройку, задайте параметру запроса waivefees значение true. Этот флаг полезен при переносе разработчиков на монетизацию, как описано в разделе Перенос разработчиков на монетизацию.

В таблице ниже приведены свойства конфигурации, которые можно указать в теле запроса, их значения по умолчанию и сведения о том, являются ли они обязательными.

Название Описание По умолчанию Обязательно?
startDate

Дата начала действия тарифного плана. Пример: 2017-03-24.

Н/Д Да
endDate

Дата окончания действия тарифного плана. Пример: 2017-09-24.

Тарифный план будет действовать до конца дня в указанную дату. Если вы хотите, чтобы тарифный план перестал действовать 1 декабря 2017 г., задайте для параметра endDate значение 2017-11-30. В этом случае тарифный план перестанет действовать в конце дня 30 ноября 2017 г., и все запросы 1 декабря 2017 г. будут заблокированы.

Н/Д Нет
developer

id, в котором указан идентификатор разработчика или компании, приобретающих тарифный план.

Н/Д Да
quotaTarget

Целевое количество транзакций, разрешенных для разработчика приложения. Вы можете настроить отправку уведомлений при достижении определенного процента от целевого числа, например 90%, 100 % или 150%. После достижения целевого числа транзакций дополнительные транзакции не блокируются.

Укажите положительное целое число или 0, чтобы отключить уведомления для разработчика приложения.

0 Нет
ratePlan

Свойство id, определяющее идентификатор тарифного плана.

Идентификатор тарифного плана отличается от отображаемого названия. Чтобы посмотреть сведения о тарифном плане, в том числе его идентификатор, ознакомьтесь со статьей Как работать со страницей "Тарифные планы".

Н/Д Да
suppressWarning

Флаг, указывающий, нужно ли подавлять ошибку, если разработчик пытается приобрести тарифный план, который пересекается с другим приобретенным тарифным планом. Возможные значения:

  • true – монетизация отменяет все приобретенные тарифные планы, которые разработчик должен применить к пакетам API, содержащим конфликтующие продукты API. После этого он покупает для разработчика новый пакет API.
  • false – ошибка возникает, если тарифные планы пересекаются.
Н/Д Нет
waveTerminationCharge

Флаг, указывающий, взимается ли плата за отмену, когда активный тарифный план отменяется в рамках активации нового тарифного плана. Возможные значения:

  • true – отменить комиссию за расторжение действующего тарифного плана при активации нового.
  • false – не отказываться от взимания платы за отмену, если активный тарифный план отменяется в рамках активации нового тарифного плана.
Н/Д Нет

Например, следующий запрос позволяет приобрести тарифный план location_&_messaging для указанного разработчика:

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

В этом примере свойство "сайт бронирования" suppressWarning имеет значение false. В этом случае при конфликте будет выдана ошибка. Например, если разработчик попытается приобрести тарифный план, который пересекается с другим приобретенным тарифным планом, будет выдана ошибка. Это позволяет приложению, предоставляющему пользовательский интерфейс для монетизации, перехватывать ошибку и показывать разработчику конфликтующие продукты для подтверждения (если это необходимо). Если для параметра "Монетизация" suppressWarning задано значение true, то все приобретенные тарифные планы, которые разработчик должен применить к пакетам API, содержащим конфликтующие продукты, будут отменены. После этого он покупает для разработчика новый пакет API.

В следующем запросе покупается план с регулируемой частотой уведомлений и устанавливается целевое количество транзакций – 4000.

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

Если в любом из приведенных выше примеров возвращается следующее сообщение об ошибке:

Developer legal name not specified. 

Затем вам нужно задать атрибуты монетизации MINT_DEVELOPER_ADDRESS и MINT_DEVELOPER_LEGAL_NAME и повторить вызов API.

Как завершить действие тарифного плана, приобретенного разработчиком с помощью API

Чтобы отменить тарифный план, приобретенный разработчиком, обновите сведения о нем и укажите свойство endDate в теле запроса PUT к ресурсу /organizations/{org_name}/developers/{developer_or_company_id}/developer-rateplans/{developer_rateplan_id}.

Тарифный план будет действовать до конца дня в указанную дату окончания. Если вы хотите, чтобы тарифный план перестал действовать 1 декабря 2017 г., укажите в поле endDate значение 2017-11-30. В этом случае тарифный план перестанет действовать в конце дня 30 ноября 2017 г., и все запросы 1 декабря 2017 г. будут заблокированы.

Дата {developer_rateplan_id} возвращается в ответе, когда вы покупаете опубликованный тарифный план.

Пример:

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

Вы также можете получить {developer-rateplan-id} для тарифного плана разработчика, отправив GET-запрос на адрес /organizations/{org_name}/developers/{developer_id}/developer-accepted-rateplans, где {developer_id} – адрес электронной почты разработчика. Подробнее о том, как посмотреть все тарифные планы, приобретенные разработчиком…

В следующем запросе конечная дата изменена на 1 декабря 2017 г. То есть тарифный план перестанет действовать в конце дня 30 ноября 2017 г., и все запросы, поступившие 1 декабря 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
  }'