Покупка тарифных планов с использованием 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

Дата начала действия тарифного плана. Например: 24.03.2017 .

Н/Д Да
endDate

Дата окончания действия тарифного плана. Например: 24.09.2017 .

Тарифный план будет действовать до конца суток указанной даты. Например, если вы хотите истечь срок действия тарифного плана 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} Ресурс /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
  }'