Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Настройте политики записи транзакций для каждого продукта API в вашем пакете продуктов API, как описано в следующих разделах.
Введение
Политика записи транзакций позволяет монетизировать фиксацию параметров транзакций и настраиваемых атрибутов. Эта информация необходима программе монетизации для выполнения обработки монетизации, например применения тарифных планов.
Например, если вы настроили тарифный план доли дохода, процент дохода, полученного от каждой транзакции с использованием вашего монетизируемого продукта API, передается разработчику приложения, отправляющего запрос. Доля дохода рассчитывается на основе чистой или валовой цены транзакции (вы указываете какую именно), то есть для определения доли дохода используется процент от общей или чистой цены каждой транзакции. По этой причине для монетизации необходимо знать валовую или чистую цену транзакции, в зависимости от обстоятельств. Он получает брутто или чистую цену из настроек, которые вы задаете в политике записи транзакций.
Если вы настроили тарифный план, в котором вы взимаете плату с разработчика за каждую транзакцию, вы можете установить тариф для плана на основе настраиваемого атрибута, такого как количество байтов, передаваемых в транзакции. Для монетизации необходимо знать, что такое пользовательский атрибут и где его найти. Поэтому вам необходимо указать настраиваемый атрибут в политике записи транзакций.
Помимо указания атрибутов транзакции в политике записи транзакций, вы можете указать критерии успешности транзакции, чтобы определить, является ли транзакция успешной (для целей взимания платы). Примеры установки критериев успешности транзакций см. в разделе Примеры установки критериев успешности транзакций в политике записи транзакций . Вы также можете указать специальные атрибуты для продукта API (на основе которого вы основываете оплату тарифного плана).
Настройка политики записи транзакций
Откройте страницу «Пакеты продуктов», как описано ниже.
Край
При добавлении пакета продуктов API с помощью пользовательского интерфейса Edge необходимо настроить политику записи транзакций, выполнив следующие шаги:
- Выберите продукт API для настройки в разделе «Политика записи транзакций» (если в комплекте продуктов несколько продуктов API).
- Настройте атрибуты транзакции .
- Настройте пользовательские атрибуты .
- Свяжите ресурсы с уникальными идентификаторами транзакций .
- Настройте возвраты .
- Повторите эти действия для каждого продукта API, определенного в пакете продуктов API.
Классический Edge (частное облако)
Чтобы настроить политику записи транзакций с помощью классического пользовательского интерфейса Edge:
- Войдите в систему по
http:// ms-ip :9000
, где ms-ip — это IP-адрес или DNS-имя узла сервера управления. - Выберите «Опубликовать» > «Продукты» на верхней панели навигации.
- Нажмите + Политика записи транзакций в строке соответствующего продукта API. Откроется окно «Новая политика записи транзакций».
- Настройте политику записи транзакций, выполнив следующие шаги:
- Нажмите Сохранить .
Настройка атрибутов транзакции
В разделе «Атрибуты транзакции» укажите критерии, указывающие на успешную транзакцию монетизации.
- В поле «Критерии успеха транзакции» укажите выражение, основанное на значении атрибута «Статус» (описанного далее), для определения того, когда транзакция является успешной (для целей взимания платы). Транзакции, не успешные (то есть не соответствующие критериям в выражении), фиксируются, но к ним не применяются тарифные планы. Например:
txProviderStatus == 'OK'
- Атрибут Статус содержит значение, используемое выражением, настроенным в поле Критерии успеха транзакции . Настройте атрибут Статус , определив следующие поля:
Поле Описание API-ресурс Шаблоны URI, определенные в продукте API, которые будут использоваться для идентификации монетизируемых транзакций. Место ответа Местоположение ответа, в котором указан атрибут. Допустимые значения: переменная потока, заголовок, тело JSON и тело XML. Ценить Ценность ответа. Чтобы указать более одного значения, нажмите + Добавить x (например, + Добавить переменную потока ). - Чтобы настроить дополнительные атрибуты транзакции, включите переключатель «Использовать дополнительные атрибуты» и настройте любой из атрибутов транзакции, определенных в следующей таблице.
Атрибут Описание Цена брутто Этот атрибут применим только для тарифных планов, использующих модель распределения дохода. Для этих тарифных планов обязательным является либо валовая цена, либо чистая цена. Убедитесь, что числовое значение выражено как строковый тип. Общая цена за транзакцию. Для планов распределения дохода необходимо записать либо атрибут «Цена брутто», либо атрибут «Цена нетто». Какой атрибут является обязательным, зависит от основы доли дохода. Например, вы можете настроить тарифный план доли дохода, основанный на валовой цене транзакции. В этом случае поле «Цена брутто» является обязательным.
Чистая цена Этот атрибут применим только для тарифных планов, использующих модель распределения дохода. Для этих тарифных планов обязательным является либо валовая цена, либо чистая цена. Убедитесь, что числовое значение выражено как строковый тип. Чистая цена за транзакцию. Для планов распределения дохода вам необходимо записать либо поле «Чистая цена», либо поле «Брутовая цена». Обязательное поле зависит от доли дохода. Например, вы можете настроить тарифный план доли дохода, основанный на чистой цене транзакции. В этом случае поле Чистая цена является обязательным.
Валюта Этот атрибут необходим для тарифных планов, использующих модель распределения дохода. Тип валюты, которая применяется к транзакции.
Код ошибки Код ошибки, связанный с транзакцией. Он предоставляет дополнительную информацию о неудачной транзакции.
Описание товара Описание сделки.
Налог Этот атрибут актуален только для моделей распределения доходов и только в том случае, если сумма налога фиксируется в вызовах API. Убедитесь, что числовое значение выражено как строковый тип. Сумма налога при покупке. Цена нетто плюс налог = цена брутто.
Например, установив следующие значения, монетизация получит значение переменной потока из ответа на сообщение в переменной с именем response.reason.phrase
. Если значение «ОК» и к запросу ProxyEndpoint прокси-сервера API прикреплена политика монетизации , монетизация засчитывает это как транзакцию.
Поле | Ценить |
---|---|
Критерии успеха транзакции | txProviderStatus == 'OK' |
Статус: API-ресурс | ** |
Статус: Место ответа | Переменная потока |
Статус: переменная потока | response.reason.phrase |
Настройка пользовательских атрибутов
В разделе «Настраиваемые атрибуты» вы определяете настраиваемые атрибуты для включения в политику записи транзакций. Например, если вы настроили тарифный план, в котором вы взимаете с разработчика плату за каждую транзакцию, вы можете установить тариф для плана на основе настраиваемого атрибута, такого как количество байтов, передаваемых в транзакции. Затем вам необходимо включить этот настраиваемый атрибут в политику записи транзакций.
Каждый из этих атрибутов хранится в журнале транзакций, к которому вы можете обращаться. Они также отображаются при создании тарифного плана (чтобы вы могли выбрать один или несколько из этих атрибутов, на основе которых будет определяться тариф для этого плана).
Вы можете включать настраиваемые атрибуты, определенные в политике записи транзакций, в сводные отчеты о доходах, как описано в разделе Включение настраиваемых атрибутов транзакций в сводные отчеты о доходах .
Чтобы настроить настраиваемые атрибуты, включите переключатель «Использовать настраиваемые атрибуты» и определите до 10 настраиваемых атрибутов. Для каждого настраиваемого атрибута, который вы включаете в политику записи транзакций, вам необходимо указать следующую информацию.
Поле | Описание |
---|---|
Имя пользовательского атрибута | Введите имя, описывающее настраиваемый атрибут. Если тарифный план основан на пользовательском атрибуте, это имя отображается пользователю в сведениях о тарифном плане. Например, если пользовательский атрибут фиксирует продолжительность, вам следует дать атрибуту имя «длительность». Фактические единицы для настраиваемого атрибута (например, часы, минуты или секунды) задаются в поле единицы рейтинга при создании тарифного плана настраиваемого атрибута (см. раздел Указание тарифного плана с подробностями настраиваемого атрибута ). |
API-ресурс | Выберите один или несколько суффиксов URI (то есть фрагмент URI, следующий за базовым путем) ресурса API, доступ к которому осуществляется в транзакции. Доступные ресурсы такие же, как и для атрибутов транзакции. |
Место ответа | Выберите место в ответе, где указан атрибут. Допустимые значения: переменная потока, заголовок, тело JSON и тело XML. |
Ценить | Укажите значение настраиваемого атрибута. Каждое указанное вами значение соответствует полю, параметру или элементу содержимого, который предоставляет настраиваемый атрибут в указанном вами местоположении. Чтобы указать более одного значения, нажмите + Добавить x (например, + Добавить переменную потока ). Например, если вы настроили настраиваемый атрибут с именем «Длина контента» и выбрали «Заголовок» в качестве местоположения ответа, если значение «Длина контента» указано в поле HTTP Content-Length, вы должны указать |
Свяжите ресурсы с уникальным идентификатором транзакции
Некоторые транзакции просты и включают вызов API к одному ресурсу. Однако другие транзакции могут быть более сложными. Например, предположим, что транзакция по покупке внутреннего продукта в мобильном игровом приложении включает в себя несколько вызовов ресурсов:
- Вызов резервного API, который гарантирует, что пользователь с предоплатой имеет достаточно средств для покупки продукта, и выделяет («резервирует») средства для покупки.
- Вызов API оплаты, который списывает средства со счета предоплаченного пользователя.
Чтобы обработать всю транзакцию, монетизации необходим способ связать первый ресурс (вызов и ответ в и из резервного API) со вторым ресурсом (вызов и ответ в и из API оплаты). Для этого он использует информацию, которую вы указываете в разделе «Связать ресурсы с уникальным идентификатором транзакции» .
Чтобы настроить пользовательские атрибуты, включите переключатель «Использовать уникальные идентификаторы транзакций» и свяжите транзакции. Для каждой транзакции вы указываете ресурс, расположение ответа и значение атрибута, которое связано с соответствующими значениями в других транзакциях.
Например, предположим, что вызов API резерва и вызов API оплаты связаны следующим образом: поле с именем session_id
в заголовке ответа от API резерва соответствует заголовку ответа с именем reference_id
из API оплаты. В этом случае вы можете установить записи в разделе «Связать ресурсы с уникальным идентификатором транзакции» следующим образом:
Ресурс | Место ответа | Ценить |
---|---|---|
reserve/{id}** | Заголовок | session_id |
/charge/{id}** | Заголовок | reference_id |
Настройка возвратов
В разделе «Возвраты» вы указываете атрибуты, которые монетизация использует для обработки возвратов.
Например, предположим, что пользователь покупает продукт в мобильном приложении, которое использует ваши монетизируемые API. Транзакция монетизируется на основе общего плана доходов. Однако предположим, что пользователь неудовлетворен продуктом и хочет его вернуть. Если возврат средств за продукт осуществляется с помощью вызова вашего API, который осуществляет возврат средств, монетизация вносит необходимые корректировки. Это делается на основе информации, которую вы указываете в разделе «Возвраты» политики записи транзакций.
Чтобы настроить возвраты, включите переключатель «Использовать атрибуты возврата» и определите детали возврата:
- Определите критерии возврата, задав следующие поля:
Поле Описание Место ответа Ресурс для транзакции возврата. Если продукт API предоставляет несколько ресурсов, вы можете выбрать только тот ресурс, который выполняет возврат средств. Критерии успеха возврата Выражение, основанное на значении атрибута Статус (описанного ниже), для определения того, когда транзакция возврата является успешной (для целей взимания платы). Неуспешные операции возврата (то есть не соответствующие критериям в выражении) фиксируются, но к ним не применяются тарифные планы. Например: txProviderStatus == 'OK'
- Настройте атрибут Статус , определив следующие поля:
Поле Описание Место ответа Местоположение ответа, в котором указан атрибут. Допустимые значения: переменная потока, заголовок, тело JSON и тело XML. Ценить Ценность ответа. Чтобы указать более одного значения, нажмите + Добавить x (например, + Добавить переменную потока ). - Настройте атрибут Parent ID , задав следующие поля:
Поле Описание Место ответа Местоположение ответа, в котором указан атрибут. Допустимые значения: переменная потока, заголовок, тело JSON и тело XML. Ценить Идентификатор транзакции, по которой осуществляется возврат средств. Например, если пользователь покупает продукт, а затем запрашивает возврат средств, идентификатор родительской транзакции — это идентификатор транзакции покупки. Чтобы указать более одного значения, нажмите + Добавить x (например, + Добавить переменную потока ). - Чтобы настроить дополнительные атрибуты возврата, включите переключатель «Использовать дополнительные атрибуты возврата» и настройте атрибуты. Необязательные атрибуты возврата аналогичны необязательным атрибутам транзакции, как определено в разделе Настройка атрибутов транзакции .
Управление политиками записи транзакций с помощью API
В следующих разделах описывается, как управлять политиками записи транзакций с помощью API.
Создание политики записи транзакций с помощью API
Вы указываете политику записи транзакций как атрибут продукта API. Значение атрибута определяет:
- Суффикс URI ресурса продукта, к которому прикреплена политика записи транзакций. Суффикс включает переменную шаблона, заключенную в фигурные скобки. Переменная шаблона оценивается службами API во время выполнения. Например, следующий суффикс URI включает переменную шаблона
{id}
./reserve/{id}**
В этом случае службы API оценивают суффикс URI ресурса как
/reserve
, за которым следует любой подкаталог, начинающийся с идентификатора, определенного поставщиком API. - Ресурс в ответе, к которому он прикреплен. Продукт API может иметь несколько ресурсов, и каждый ресурс может иметь политику записи транзакций, прикрепленную к ответу от этого ресурса.
- Политика извлечения переменных, которая позволяет политике записи транзакций извлекать содержимое из ответного сообщения для параметров транзакции, которые вы хотите зафиксировать.
Вы добавляете атрибут политики записи транзакций в продукт API, отправляя запрос PUT к API управления https://api.enterprise.apigee.com/v1/organizations/ {org_name} /apiproducts/ {apiproduct_Id}
(а не к API монетизации).
Указание критериев успешности транзакции с помощью API
Вы можете указать критерии успешности транзакции, чтобы определить, является ли транзакция успешной (для целей взимания платы). Неуспешные транзакции (то есть соответствующие критериям выражения) фиксируются, но к ним не применяются тарифные планы. Примеры установки критериев успешности транзакций см. в разделе Примеры установки критериев успешности транзакций в политике записи транзакций .
Вы указываете критерии успешности транзакции как атрибут продукта API. Сделайте это, отправив запрос PUT к API управления https://api.enterprise.apigee.com/v1/organizations/ {org_name} /apiproducts/ {apiproduct_Id}
(а не к API монетизации).
Например, в следующем запросе транзакция считается успешной, если значение txProviderStatus
является success
(выделены спецификации, связанные с критериями успеха транзакции).
$ curl -H "Content-Type: application/json" -X PUT -d \ '{ "apiResources": [ "/reserve/{id}**" ], "approvalType": "auto", "attributes": [ { "name": "MINT_TRANSACTION_SUCCESS_CRITERIA", "value": "txProviderStatus == 'OK'" } ], "description": "Payment", "displayName": "Payment", "environments": [ "dev" ], "name": "payment", "proxies": [], "scopes": [ "" ] }' \ "https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/payment" \ -u email:password
Указание пользовательских атрибутов с помощью API
Вы можете указать пользовательские атрибуты для продукта API, на основе которого рассчитывается стоимость тарифного плана. Например, если вы настроили тарифный план, в котором вы взимаете плату с разработчика за каждую транзакцию, вы можете установить тариф для плана на основе настраиваемого атрибута, такого как количество байтов, передаваемых в транзакции. При создании тарифного плана вы можете указать один или несколько пользовательских атрибутов, на основе которых будет определяться тариф для этого плана. Однако любой конкретный продукт в тарифном плане может иметь только один настраиваемый атрибут, на основе которого будет определяться тариф для этого плана.
Вы указываете пользовательские атрибуты как атрибуты продукта API. Сделайте это, отправив запрос PUT к API управления https://api.enterprise.apigee.com/v1/organizations/ {org_name} /apiproducts/ {apiproduct_Id}
(а не к API монетизации).
Для каждого пользовательского атрибута, который вы добавляете в продукт API, вам необходимо указать имя и значение атрибута. Имя должно быть в формате MINT_CUSTOM_ATTRIBUTE_ {num}
, где {num} — целое число.
Например, следующий запрос указывает три настраиваемых атрибута.
$ curl -H "Content-Type: application/json" -X PUT -d \ '{ "apiResources": [ "/reserve/{id}**", "/charge/{id}**" ], "approvalType": "auto", "attributes": [ { "name": "MINT_CUSTOM_ATTRIBUTE_1", "value": "test1" }, { "name": "MINT_CUSTOM_ATTRIBUTE_2", "value": "test2" } ], "name": "payment", "proxies": [], "scopes": [ "" ] }' \ "https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/payment" \ -u email:password
Примеры установки критериев успешности транзакций в политике записи транзакций
В следующей таблице приведены примеры успешных и неудачных транзакций на основе выражения критериев успеха транзакции и значения txProviderStatus
возвращаемого прокси-сервером API. txProviderStatus
— это внутренняя переменная, которую монетизация использует для определения успешности транзакции.
Выражение критериев успеха | Верное выражение? | Значение txProviderStatus из прокси API | Результат оценки |
---|---|---|---|
null | истинный | "200" | ЛОЖЬ |
"" | ЛОЖЬ | "200" | ЛОЖЬ |
" " | ЛОЖЬ | "200" | ЛОЖЬ |
"sdfsdfsdf" | ЛОЖЬ | "200" | ЛОЖЬ |
"txProviderStatus =='100'" | истинный | "200" | ЛОЖЬ |
"txProviderStatus =='200'" | истинный | "200" | истинный |
"true" | истинный | "200" | истинный |
"txProviderStatus=='OK' OR | истинный | "OK" | истинный |
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" | истинный | "OK" | истинный |
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" | истинный | "Not Found" | истинный |
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" | истинный | "Bad Request" | истинный |
"(txProviderStatus?:'') matches '(?i)(OK)|(Not Found)|(Bad Request)'" | истинный | "Bad Request" | истинный |
"(txProviderStatus?:'') matches '(?i)(OK)|(Not Found)|(Bad Request)'" | истинный | null | ЛОЖЬ |
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" | истинный | "bad request" | истинный |
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" | истинный | "Redirect" | ЛОЖЬ |
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" | истинный | "heeeelllooo" | ЛОЖЬ |
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" | истинный | null | ЛОЖЬ |
"txProviderStatus == 100" | истинный | "200" | ЛОЖЬ |