Как установить сервисы монетизации

Monetization Services – это расширение для Apigee Edge, поэтому оно не работает как отдельный процесс. Он работает в любой существующей конфигурации Apigee Edge, за исключением конфигурации All-In-One (AIO). Вы не можете установить сервисы монетизации в конфигурации AIO.

Требования к монетизации

  • Если вы устанавливаете Monetization в топологии Edge, в которой используется несколько узлов Management Server, например в топологии с 13 узлами, то перед установкой Monetization необходимо установить оба узла Edge Management Server.
  • Чтобы установить Monetization в Edge, где в установке Edge есть несколько узлов Postgres, узлы Postgres должны быть настроены в режиме Master/Standby. Вы не можете установить Monetization on Edge, если у вас несколько главных узлов Postgres. Подробнее о том, как настроить репликацию Master-Standby для Postgres…
  • Монетизация недоступна в конфигурации All-In-One (AIO).

Общие сведения об установке

Чтобы добавить сервисы монетизации в существующую установку Apigee Edge, выполните следующие действия:

  • Используйте утилиту apigee-setup, чтобы обновить узел сервера управления Apigee и включить сервисы монетизации, например управление каталогом, настройку ограничений и уведомлений, оплату и отчеты.

    Если у вас несколько узлов Management Server, например 13, то перед установкой Monetization необходимо установить оба узла Edge Management Server.

  • Используйте утилиту apigee-setup, чтобы обновить Apigee Message Processor и включить компоненты среды выполнения сервисов монетизации, например правила записи транзакций и применение ограничений. Если у вас несколько Message Processor, установите Монетизацию на все.
  • Выполните процесс адаптации монетизации для своих организаций Edge.
  • Настройте портал Apigee Developer Services (или просто портал) для поддержки монетизации. Дополнительную информацию можно найти в статье Как настроить монетизацию на портале для разработчиков.

Создание файла конфигурации для автоматической установки Monetization

Ниже приведен пример файла конфигурации для автоматической установки Monetization. При необходимости измените этот файл в соответствии с вашей конфигурацией. Чтобы включить этот файл, используйте параметр -f для setup.sh.

# Edge configuration properties
# Specify IP address or DNS name of node.
IP1=192.168.1.1  # Management Server, OpenLDAP, UI, ZooKeeper, Cassandra
IP2=192.168.1.2  # ZooKeeper, Cassandra
IP3=192.168.1.3  # ZooKeeper, Cassandra
IP4=192.168.1.4  # Router, Message Processor
IP5=192.168.1.5  # Router, Message Processor
IP6=192.168.1.6  # Qpid
IP7=192.168.1.7  # Qpid
IP8=192.168.1.8  # Postgres
IP9=192.168.1.9  # Postgres

# Must resolve to IP address or DNS name of host - not to 127.0.0.1 or localhost.
HOSTIP=$(hostname -i)

# Edge sys admin credentials
ADMIN_EMAIL=your@email.com
APIGEE_ADMINPW=yourPassword    # If omitted, you are prompted for it.

# Specify the Management Server port.
APIGEE_PORT_HTTP_MS=8080

#
# Monetization configuration properties.
#
# Postgres credentials from Edge installation.
PG_USER=apigee    # Default from Edge installation
PG_PWD=postgres    # Default from Edge installation

# Specify Postgres server.
MO_PG_HOST="$IP8"    # Only specify one Postgres node.

# Create a Postgres user for Monetization.
# Default username is "postgre".
# If you specify a different user, that user must already exist.
MO_PG_USER=postgre
MO_PG_PASSWD=moUserPWord

# Specify one ZooKeeper host.
# Ensure this is a ZooKeeper leader node in a multi-datacenter environment.
ZK_HOSTS="$IP2"

# Specify Cassandra information.
# Ensure CASS_HOSTS is set to the same value as when you installed Edge.
# Must use IP addresses for CASS_HOSTS, not DNS names.
CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1"

# Default is "Apigee", unless it was changed during Edge install.
CASS_CLUSTERNAME=Apigee

# Cassandra uname/pword required only if you enabled Cassandra authentication.
# If your password uses special characters, wrap it in single quotes.
# CASS_USERNAME=
# CASS_PASSWORD=

# Specify the region.
# Default is dc-1 unless you are in a multi-datacenter environment.
REGION=dc-1

# If your Edge config file did not specify SMTP information, add it.
# Monetization requires an SMTP server.
SMTPHOST=smtp.gmail.com
SMTPPORT=465
SMTPUSER=your@email.com
SMTPPASSWORD=yourEmailPassword
SMTPSSL=y
SMTPMAILFROM="My Company <myco@company.com>"

Примечания

  • Если в файле конфигурации Edge не указана информация об SMTP, добавьте ее. Для монетизации требуется SMTP-сервер.
  • В установке с одним центром обработки данных нечетное количество узлов ZooKeeper должно быть настроено как voters. Если количество узлов ZooKeeper четное, то некоторые узлы будут настроены как observers. Если вы устанавливаете Edge в четном количестве центров обработки данных, некоторые узлы ZooKeeper должны быть настроены как observers, чтобы количество узлов с правом голоса было нечетным. Во время выборов лидера ZooKeeper один узел-избиратель будет выбран в качестве leader. Убедитесь, что в свойстве ZK_HOSTS выше указан узел-лидер в установке с несколькими центрами обработки данных.
  • Если вы включите аутентификацию Cassandra, вы можете передать имя пользователя и пароль Cassandra, используя следующие свойства:
    CASS_USERNAME
    CASS_PASSWORD

Интегрируйте сервисы монетизации со всеми серверами управления

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

  1. Если вы устанавливаете Монетизацию в топологии Edge, в которой используется несколько узлов сервера управления, например в установке с 13 узлами, то перед установкой Монетизации убедитесь, что вы установили оба узла сервера управления.
  2. На узле сервера управления запустите скрипт настройки:
    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f configFile

    Параметр -p mo указывает на интеграцию монетизации.

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

  3. Если вы устанавливаете Монетизацию на нескольких узлах сервера управления, повторите шаг 2 на втором узле сервера управления.

После успешной настройки в базе данных PostgreSQL создается схема RDBMS для сервисов монетизации. На этом интеграция сервисов монетизации и связанных с ними компонентов с сервером Postgres завершена.

Интегрируйте сервисы монетизации со всеми процессорами сообщений

Чтобы интегрировать монетизацию на всех узлах Message Processor, выполните следующие действия:

  1. На первом узле Message Processor в командной строке запустите скрипт настройки:
    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f configFile

    Параметр -p mo указывает на интеграцию монетизации.

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

  2. Повторите эту процедуру на всех узлах Message Processor.

После успешной настройки Message Processor обновляется с помощью Monetization Services. На этом интеграция сервисов монетизации и связанных с ними компонентов с Message Processor завершена.

Регистрация в программе монетизации

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

  1. Создайте организацию, как обычно. Подробнее о том, как зарегистрировать организацию…
  2. Используйте API для инициализации монетизации, как описано в статье Как включить монетизацию для организации. Для этого у вас должны быть права системного администратора.

При следующем входе в интерфейс Edge вы увидите пункт "Монетизация" в меню верхнего уровня для организации:

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

Добавление узла сервера управления в установку монетизации

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

Чтобы добавить сервер управления, выполните следующие действия:

  1. Установите новый сервер управления.
  2. Установите Монетизацию на новый сервер управления.
  3. На исходном сервере управления вызовите следующую команду:
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-management-server mint-configure-mgmt-cluster
  4. Перезапустите исходный сервер управления:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
  5. На новом сервере управления вызовите следующую команду:
    /opt/apigee/apigee-service/bin/apigee-service edge-mint-management-server mint-configure-mgmt-cluster
  6. Перезапустите новый сервер управления:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

Дополнительная конфигурация

Предоставлять платежные документы в формате PDF

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

Как настроить параметры организации

Чтобы добавить или обновить атрибуты организации, используйте запрос PUT, как показано в примере ниже.

curl -u SYS_ADMIN_EMAIL:SYS_ADMIN_PASSWORD \
  -v http://ms_IP:8080/v1/organizations/orgId -d 'org object with attributes' -X PUT

Монетизация отвечает настройками организации. Пример:

{
  ...
  "displayName": "Orgnization name",
  "name": "org4",
  "properties": {
    "property": [
      ...
      {
        "name": "MINT_CURRENCY",
        "value": "USD"
      },
      {
        "name": "MINT_COUNTRY",
        "value": "US"
      },
      {
        "name": "MINT_TIMEZONE",
        "value": "GMT"
      }
    ]
  }
}

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

Атрибуты Описание
MINT_TAX_MODEL

Допустимые значения: DISCLOSED, UNDISCLOSED, HYBRID (по умолчанию – null).

MINT_CURRENCY

Код валюты по стандарту ISO (по умолчанию – null).

MINT_TAX_NEXUS

Налоговая связь (по умолчанию – null)

MINT_DEFAULT_PROD_TAX_CATEGORY

Категория налогообложения товара по умолчанию (по умолчанию – null)

MINT_IS_GROUP_ORG

Является ли группа организацией (по умолчанию – false)

MINT_HAS_BROKER

Has broken (значение по умолчанию – false)

MINT_TIMEZONE

Часовой пояс (по умолчанию – null)

MINT_TAX_ENGINE_EXTERNAL_ID

Идентификатор налогового механизма (по умолчанию – null)

MINT_COUNTRY

Страна организации (по умолчанию – null)

MINT_REG_NO

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

MINT_BILLING_CYCLE_TYPE

"PRORATED", "CALENDAR_MONTH" (по умолчанию – "CALENDAR_MONTH")

MINT_SUPPORTED_BILLING_TYPE

PREPAID, POSTPAID или BOTH (по умолчанию – PREPAID).

MINT_IS_SEPARATE_INV_FOR_FEES

Указывает, нужно ли создавать отдельный счет на оплату комиссии (по умолчанию – false).

MINT_ISSUE_NETTING_STMT

Указывает, нужно ли выставлять выписку о взаимозачете (по умолчанию – "false").

MINT_NETTING_STMT_PER_CURRENCY

Указывает, нужно ли создавать выписку о взаимозачете для каждой валюты (по умолчанию – false).

MINT_HAS_SELF_BILLING

Указывает, есть ли у организации самостоятельное выставление счетов (по умолчанию – false).

MINT_SELF_BILLING_FOR_ALL_DEV

Указывает, есть ли у организации самостоятельное выставление счетов для всех разработчиков (по умолчанию false).

MINT_HAS_SEPARATE_INV_FOR_PROD

Указывает, выставляется ли организации отдельный счет за каждый продукт (по умолчанию – false).

MINT_HAS_BILLING_ADJUSTMENT

Указывает, поддерживает ли организация корректирующие проводки (по умолчанию – false).

features.isMonetizationEnabled

Используется интерфейсом управления для показа меню монетизации (по умолчанию – false).

ui.config.isOperator

Используется интерфейсом управления, чтобы показывать поставщика как оператора, а не организацию (по умолчанию – true).

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

Ограничения монетизации

Чтобы применить лимиты монетизации, прикрепите правило проверки лимитов монетизации к прокси-серверам API. Правило срабатывает при следующих условиях:

  • Разработчик, который пытается получить доступ к монетизированному API, не зарегистрирован или не подписан на тарифный план.
  • Разработчик превысил объем транзакций для тарифного плана, на который он подписан.
  • Достигнут баланс предоплаченного аккаунта разработчика или кредитный лимит аккаунта с оплатой по факту.

Правило проверки лимитов монетизации выявляет ошибки и блокирует вызовы API в ситуациях, подобных перечисленным выше. Это правило расширяет правило Raise Fault, и вы можете настроить возвращаемое сообщение. Применимые условия определяются на основе коммерческих переменных.

Подробнее о том, как применять ограничения монетизации к прокси-серверам API…