Настройка тарифного плана с настраиваемыми атрибутами

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

Введение

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

  • Разработчикам может быть назначена переменная плата, зависящая от значения, указанного в сообщении API-запроса. Например, вы можете взимать плату с разработчиков приложений в зависимости от количества байтов, переданных в API-запросе.
  • Объедините несколько вызовов API в одну транзакцию.

Используя тарифные планы с настраиваемыми атрибутами, вы можете указать в сообщении вызова API значение, которое действует как счетчик и используется для расчета количества транзакций и комиссий.

Поддерживаются следующие тарифные планы с настраиваемыми параметрами:

  • Прайс-лист с пользовательскими атрибутами
  • Настраиваемое уведомление с возможностью добавления пользовательских атрибутов.

Для каждого тарифного плана можно задать максимум десять пользовательских атрибутов.

Понимание вычислений пользовательских атрибутов

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

модель зарядки Расчет пользовательских атрибутов
Фиксированная ставка и диапазон объема

custom attribute number * rate = charge to developer

При фиксированной ставке число пользовательского атрибута становится числом транзакций, которое умножается на ставку. При ставке с ограничением по объему количество транзакций в диапазоне увеличивается на число пользовательского атрибута, и с разработчика взимается плата за это количество транзакций. Например, если значение пользовательского атрибута в сообщении равно 10, то с разработчика взимается плата за 10 транзакций, и 10 транзакций добавляются к текущему количеству транзакций в диапазоне. Если у разработчика осталось только 6 транзакций в текущем диапазоне, 6 умножается на ставку для этого диапазона. Оставшиеся 4 переходят в следующий диапазон и умножаются на ставку этого диапазона.

В тарифном плане с ограничением объема транзакций, если последний диапазон объема имеет лимит (не является «безлимитным») и транзакция превышает этот лимит, происходят две вещи:

Наборы

Поскольку оплата за пакеты услуг производится группой, а не в рамках транзакции, выполняется следующий расчет:

custom attribute number = amount added to bundle count

Например, если числовое значение пользовательского атрибута в сообщении равно 10, то к количеству транзакций, использованных в пакете, добавляется 10. Если у разработчика осталось всего 6 транзакций в текущем пакете, то этот пакет заполняется, и счетчик следующего пакета увеличивается на 4. За этот следующий пакет, если таковой имеется, взимается плата.

Если у последнего пакета данных есть лимит (он не является «безлимитным») и транзакция превышает этот лимит, происходят две вещи:

Настраиваемые уведомления

Для настраиваемых уведомлений выполняется следующий расчет:

custom attribute number = amount added to transaction count

Например, если числовое значение пользовательского атрибута в сообщении равно 10, то это число добавляется к общему количеству транзакций.

Где тарифный план получает значение пользовательского атрибута

Политика записи транзакций (в пакете продуктов API) указывает монетизации, где в сообщении искать значение пользовательского атрибута. Пользовательский атрибут определяется в разделе «Пользовательские атрибуты» политики записи транзакций для пакета продуктов API.

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

Вот основная схема работы:

  1. Укажите пользовательские атрибуты при добавлении продукта API .
  2. Создайте пакет API-продуктов, содержащий этот продукт.
    В политике записи транзакций для пакета продуктов API добавьте пользовательские атрибуты, которые будут использоваться для определения тарифных планов.
  3. Создайте тарифный план типа «Тарифная карта» или «Настраиваемое уведомление» для пакета продуктов API и укажите пользовательский параметр тарификации .

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

Как сгенерировать значение пользовательского атрибута в сообщении?

Политика записи транзакций может искать значение пользовательского атрибута в нескольких местах, например, в заголовке ответа, теле ответа или в предопределенных переменных потока в ответе. (Запрос недоступен, поскольку транзакция не считается официальной, пока не будет получен успешный ответ.) Ниже приведены примеры, показывающие, как добавить заголовок ответа с его числовым значением к сообщению. В обоих случаях мы будем использовать политику «Назначить сообщение» в сочетании с переменными.

Добавление размера полезной нагрузки запроса в заголовок ответа.

В каждом запросе сообщения есть переменная client.received.content.length , содержащая количество байтов в полезной нагрузке запроса. Прикрепив политику Assign Message к ответу конечной точки прокси, мы можем сгенерировать заголовок ответа с именем messageSize , содержащий значение длины:

<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1">
    <DisplayName>Assign Message 1</DisplayName>
    <Set>
        <Headers>
          <Header name="messageSize">{client.received.content.length}</Header> 
        </Headers>  
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

Добавление значения пользовательского атрибута приложения в заголовок.

Аналогичным образом мы можем сгенерировать заголовок со значением пользовательского атрибута в приложении. Например, если вы добавите пользовательский атрибут с именем apprating в каждое приложение разработчика, следующим образом:

При использовании политики проверки ключа API (необходимой для монетизации) это значение сохраняется в переменной с именем verifyapikey.{policy_name}.apprating . Используя политику назначения сообщения, прикрепленную к ответу конечной точки прокси, вы можете сгенерировать заголовок с именем apprating , содержащий значение apprating приложения:

<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Message-1">
    <DisplayName>Assign Message 1</DisplayName>
    <Set>
        <Headers>
          <Header name="apprating">{verifyapikey.Verify-API-Key-1.apprating}</Header> 
        </Headers>  
    </Set>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

Настройка тарифного плана

За исключением описанной выше настройки пользовательских атрибутов, тарифный план настраивается так же, как и обычно (для тарифных планов без пользовательских атрибутов), но должен соответствовать следующим требованиям.

Настройка тарифного плана с пользовательскими атрибутами с помощью пользовательского интерфейса.

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

Край

Чтобы настроить тарифный план с пользовательскими атрибутами с помощью пользовательского интерфейса Edge:

  1. Укажите пользовательские атрибуты при добавлении продукта API .
  2. Создайте пакет продуктов API, содержащий этот продукт. См. раздел «Создание пакетов продуктов API» .
    В политику записи транзакций для пакета продуктов API добавьте пользовательские атрибуты, которые будут использоваться для определения тарифных планов. Подробности см. во вводной части этой темы, а также в разделе «Создание политики записи транзакций» .
  3. Создайте тарифный план для пакета продуктов API и укажите пользовательский параметр оценки .

Для получения более подробной информации см. раздел «Настройка параметров тарифного плана с помощью пользовательского интерфейса» .

Классический Edge (частное облако)

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

  1. В политику записи транзакций API-продукта добавьте пользовательские атрибуты, которые будут использоваться для определения тарифных планов. Подробности см. во вводной части этого раздела, а также в разделе «Создание политики записи транзакций» . Выполните это для каждого API-продукта, который вы хотите включить в пакет API.
  2. После того как продукты API и политики записи транзакций будут настроены именно так, как вам нужно, создайте пакет API, содержащий этот продукт. См. раздел «Создание пакетов API» .
  3. Создайте тарифный план для пакета API, выбрав тип тарифного плана « Тарифная карта с пользовательским атрибутом» .
  4. Нажмите на ссылку «Прейскурант» . Откроется окно «Прейскурант».

  5. Выберите пользовательский атрибут в раскрывающемся меню «Пользовательский атрибут». В меню отображаются пользовательские атрибуты, созданные для продукта в политике записи транзакций. С разработчика взимается плата в зависимости от значения выбранного пользовательского атрибута в каждой транзакции.
    (Значение атрибута * ставка = плата разработчику)
  6. При желании можно настроить бесплатный тарифный план, как описано в разделе «Укажите подробности тарифного плана» .
  7. Настройте модель тарификации, как описано в разделе «Указание сведений о тарифном плане» . Обратите внимание, однако, что для тарифного плана типа «Тарифный план с пользовательским атрибутом» модель тарификации основана на выбранном вами пользовательском атрибуте. Например, если вы выберете «Фиксированная ставка» в качестве модели тарификации, разработчику будет начисляться фиксированная ставка, основанная на пользовательском атрибуте, таком как количество байтов, передаваемых в каждой транзакции (а не фиксированная ставка для каждой транзакции). Дополнительные сведения см. в разделе «Расчеты».
  8. Нажмите «Сохранить черновик» .
    Публикуйте тарифный план только тогда, когда вы абсолютно уверены в его окончательности. Информацию о дате публикации и публикации плана см. в разделе «Публикация тарифных планов ».

Для получения дополнительной информации см. раздел «Указание сведений о тарифном плане с помощью пользовательского интерфейса» .

Настройка настраиваемого плана уведомлений с пользовательскими атрибутами с помощью пользовательского интерфейса.

Настройте настраиваемые планы уведомлений с помощью пользовательских атрибутов, как описано ниже.

Край

Чтобы настроить тарифный план с пользовательскими атрибутами с помощью пользовательского интерфейса Edge:

  1. Укажите пользовательские атрибуты при добавлении продукта API .
  2. Создайте пакет продуктов API, содержащий этот продукт. См. раздел «Создание пакетов продуктов API» .
    В политику записи транзакций для пакета продуктов API добавьте пользовательские атрибуты, которые будут использоваться для определения тарифных планов. Подробности см. во вводной части этой темы, а также в разделе «Создание политики записи транзакций» .
  3. Создайте тарифный план для пакета продуктов API и укажите пользовательский параметр оценки .

Для получения дополнительной информации см. раздел «Настройка настраиваемого плана уведомлений с помощью пользовательского интерфейса» .

Классический Edge (частное облако)

Чтобы настроить тарифный план с пользовательскими атрибутами с помощью классического интерфейса Edge:

  1. В политику записи транзакций API-продукта добавьте пользовательские атрибуты, которые будут использоваться для определения тарифных планов. Подробности см. во вводной части этого раздела, а также в разделе «Создание политики записи транзакций» . Выполните это для каждого API-продукта, который вы хотите включить в пакет API.
  2. После того как продукты API и политики записи транзакций будут настроены именно так, как вам нужно, создайте пакет API, содержащий этот продукт. См. раздел «Создание пакетов API» .
  3. Создайте тарифный план для пакета API, выбрав тип тарифного плана « Настраиваемые уведомления с пользовательским атрибутом» .
  4. Нажмите на ссылку «Подробности» . Откроется окно «Настройка уведомлений».

  5. Выберите пользовательский атрибут в раскрывающемся меню «Пользовательский атрибут» . В меню отображаются пользовательские атрибуты, созданные для продукта в политике записи транзакций. Общее количество транзакций разработчика рассчитывается на основе значения выбранного пользовательского атрибута в каждой транзакции.
  6. В качестве параметра « Основа агрегирования» укажите период времени, за который агрегируется объем транзакций. Выберите число от 1 до 24 месяцев. По умолчанию это значение равно 1 месяцу.
  7. Нажмите «Применить» и «Закрыть» .
  8. Нажмите «Сохранить черновик» .
    Публикуйте тарифный план только тогда, когда вы абсолютно уверены в его окончательности. Информацию о дате публикации и публикации плана см. в разделе «Публикация тарифных планов ».

Для получения дополнительной информации см. раздел «Указание параметров настраиваемого плана уведомлений с помощью пользовательского интерфейса» .

Указание параметров тарифного плана с пользовательскими атрибутами с помощью API.

Выполните следующие предварительные шаги:

  1. В политику записи транзакций API-продукта добавьте пользовательские атрибуты, которые будут использоваться для определения тарифных планов. Подробности см. во вводной части этого раздела, а также в разделе «Создание политики записи транзакций» . Выполните это для каждого API-продукта, который вы хотите включить в пакет API.
  2. После того как продукты API и политики записи транзакций будут настроены именно так, как вам нужно, создайте пакет API, содержащий этот продукт. См. раздел «Создание пакетов API» .

Далее вы используете API для создания тарифного плана.

При создании тарифного плана с пользовательскими атрибутами вы указываете его подробные характеристики. Эти характеристики указываются в свойстве ratePlanDetails в теле запроса к /organizations/{org_name}/monetization-packages/{package_id}/rate-plans . В этих характеристиках указывается значение параметра рейтинга, определяющее имя пользовательского атрибута. Вы также можете указать значение параметра рейтинга, которое агрегирует значения пользовательского атрибута за указанный временной интервал.

Полный список параметров настройки сведений о тарифном плане см. в разделе «Настройки параметров тарифного плана».

Например, следующий код создает тарифный план с пользовательским атрибутом на основе пользовательского атрибута с именем messageSize (см. выделенные жирным шрифтом элементы).

$ curl -H "Content-Type:application/json" -X POST -d \
'{
   "name": "Custom attribute-based rate card plan",
   "developer":null,
   "developerCategory":null,
   "currency": {
     "id" : "usd"
     },     
   "description": "Custom attribute-based rate card plan",
   "displayName" : "Custom attribute-based rate card plan",
   "frequencyDuration": "1",
   "frequencyDurationType": "MONTH",
   "earlyTerminationFee": "10",
   "monetizationPackage": {
      "id": "location"
        },
      "organization": {
       "id": "{org_name}"
      },    
   "paymentDueDays": "30",
   "prorate": "false",
   "published": "false",     
   "ratePlanDetails":[
      {
        "currency":{
           "id":"usd"
        },
      "duration":1,
      "durationType":"MONTH",
      "meteringType":"VOLUME",
      "paymentDueDays":"30",
      "ratingParameter":"messageSize",
      "ratingParameterUnit":"MB",
      "organization":{
         "id":"{org_name}"
      },
      "ratePlanRates":[
         {
           "rate":0.15,
           "startUnit":0,
           "type":"RATECARD",
           "endUnit":1000
         },
         {
           "rate":0.1,
           "startUnit":1000,
           "type":"RATECARD",
           "endUnit":null
         }
      ],
      "freemiumUnit":0,
      "freemiumDuration":0,
      "freemiumDurationType":"MONTH",
      "type":"RATECARD",
      "customPaymentTerm":false
      }
    ],
    "freemiumUnit":0,
    "freemiumDuration":0,
    "freemiumDurationType":"MONTH",
    "contractDuration":"1",
    "contractDurationType":"YEAR", 
    "recurringStartUnit": 1,
    "recurringType": "CALENDAR",
    "recurringFee": "10",
    "setUpFee": "10",
    "startDate": "2013-09-15 00:00:00",
    "type": "STANDARD"
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/location/rate-plans" \
-u email:password

Следующий код создает тарифный план с настраиваемыми уведомлениями и пользовательскими атрибутами на основе пользовательского атрибута с именем messageSize (см. выделенный жирным шрифтом пункт).

$ curl -H "Content-Type:application/json" -X POST -d \
'{
     "name": "AdjustableNotification",
     "displayName": "Custom attribute-based adjustable notification plan",
     "description": "Custom attribute-based adjustable notification plan",
     "published": "true",  
     "organization": {
      "id": "myorg"
     },
     "startDate": "2016-04-15 00:00:00",
     "type": "STANDARD",
     "monetizationPackage": {
        "id": "p1",
        "name": "test"
     },
     "currency": {
        "id" : "usd",
        "name" : "USD"
     },
     "ratePlanDetails": [
        {
           "type": "USAGE_TARGET",
           "meteringType": "DEV_SPECIFIC",
           "duration": 1,
           "durationType": "MONTH",
           "ratingParameter": "messageSize",
           "ratingParameterUnit": "MB",
           "organization": {
             "id": "myorg"
           },
           "currency": {
             "id": "usd",
             "name": "USD"
           }
        }
     ]
}' \
"https://api.enterprise.apigee.com/v1/mint/organizations/myorg/monetization-packages/p1/rate-plans"  \
-u email:password