安装创收服务

Monetization Services 是 Apigee Edge 的扩展程序,因此它不会作为独立 进程运行。它在任何现有的 Apigee Edge 设置中运行,但 All-In-One (AIO) 配置除外。您无法在 AIO 配置中安装 Monetization Services。

创收要求

  • 如果您在采用多个管理服务器 节点(例如 13 节点安装)的 Edge 拓扑上安装 Monetization,则必须先安装两个 Edge 管理服务器节点 ,然后再安装 Monetization。
  • 如需在 Edge 上安装 Monetization,且 Edge 安装具有多个 Postgres 节点, 则必须以主/待机模式配置 Postgres 节点。如果您有多个 Postgres 主节点,则无法在 Edge 上安装 Monetization 。如需了解详情,请参阅 为 Postgres 设置主-备复制。
  • Monetization 不适用于 All-In-One (AIO) 配置。

安装概览

以下步骤说明了如何在现有 Apigee Edge 安装中添加 Monetization Services:

  • 使用 apigee-setup 实用程序更新 Apigee 管理服务器节点,以 启用 Monetization Services,例如目录管理、限制和通知 配置、结算和报告。

    如果您有多个管理服务器节点(例如 13 节点安装),则必须 安装两个 Edge 管理服务器节点,然后再安装 Monetization。

  • 使用 apigee-setup 实用程序更新 Apigee 消息处理器,以启用 Monetization Services 的运行时组件,例如交易记录政策和限制执行。如果您有多个消息处理器,请在所有消息处理器上安装 Monetization。
  • 为您的 Edge 组织执行 Monetization 新手入门流程。
  • 配置 Apigee 开发者服务门户(或简称为“门户”),以支持创收。 如需了解详情,请参阅 在开发者门户中配置 Monetization。

为 Monetization 创建静默配置文件

下面显示了 Monetization 安装的示例静默配置文件。根据需要修改此 文件以进行配置。使用 setup.sh 的 -f 选项来添加此文件。

# Edge configuration properties
# Specify IP address or DNS name of node.
IP1=192.168.1.1  # Management Server, SymasLDAP, New Edge 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 信息,请添加该信息。Monetization 需要 SMTP 服务器。
  • 在单个数据中心安装中,默认情况下,所有 ZooKeeper 节点都配置为 领导者。当您跨多个数据中心安装 Edge 时,某些 ZooKeeper 节点将 被配置为观察者。确保上述 ZK_HOSTS 属性在 多数据中心安装中指定了领导者节点。
  • 如果您启用 Cassandra 身份验证,则可以使用以下属性传递 Cassandra 用户名和密码 :
    CASS_USERNAME
    CASS_PASSWORD

将 Monetization Services 与所有管理服务器集成

请按照以下步骤在管理服务器节点上集成创收。

  1. 如果您在采用多个管理服务器 节点(例如 13 节点安装)的 Edge 拓扑上安装 Monetization,请确保先安装两个管理服务器 节点,然后再安装 Monetization。
  2. 在管理服务器节点上,运行设置脚本:
    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f configFile

    -p mo 选项用于指定集成 Monetization。

    配置文件必须可供“apigee”用户访问或读取。

  3. 如果您在多个管理服务器节点上安装 Monetization,请在 第二个管理服务器节点上重复第 2 步。

配置成功后,系统会在 PostgreSQL 数据库中为 Monetization Services 创建 RDBMS 架构。这样便完成了 Monetization Services 及其关联 组件与 Postgres 服务器的集成。

将 Monetization Services 与所有消息处理器集成

请按照以下步骤在所有消息处理器 节点上集成创收。

  1. 在第一个消息处理器节点上,在命令提示符处运行设置脚本:
    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f configFile

    -p mo 选项用于指定集成 Monetization。

    配置文件必须可供“apigee”用户访问或读取。

  2. 在所有消息处理器节点上重复此过程。

配置成功后,消息处理器将使用 Monetization Services 进行更新。这样便完成了 Monetization Services 及其关联组件与消息 处理器的集成。

Monetization 新手入门

如需创建新组织并启用创收,请执行以下操作:

  1. 像创建任何新组织一样创建组织。如需了解详情,请参阅 组织新手入门。
  2. 按照 为组织启用创收中的说明使用 Monetization 预配 API。为此,您必须拥有系统管理员 权限。

下次登录 New Edge 界面时,您会在组织的顶级菜单中看到 Monetization 条目:

新 Edge 界面中的“创收”菜单

如需配置门户以支持创收,请参阅在开发者门户中配置 Monetization。

向 Monetization 安装添加管理服务器节点

如果您向现有 Edge 安装添加管理服务器,则必须确保向新管理服务器添加 Monetization 服务,并配置所有管理服务器,以便它们 可以进行通信。

如需添加管理服务器,请执行以下操作:

  1. 安装 新 管理服务器。
  2. 使用以下命令在 新 管理服务器上安装 Monetization:
    /opt/apigee/apigee-setup/bin/setup.sh -p mo -f /opt/silent.conf

其他配置

以 PDF 文件形式提供结算文档

Monetization 会以 HTML 格式向最终用户显示结算文档。如需以 PDF 文件形式提供结算 文档,您可以将 Monetization 与提供 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

Monetization 会返回组织的设置。例如:

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

是否有代理(默认值为 false)

MINT_TIMEZONE

时区(默认值为 null)

MINT_TAX_ENGINE_EXTERNAL_ID

税务引擎 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

供 New Edge 界面用于显示创收专用菜单(默认值为 "false")

ui.config.isOperator

供 New Edge 界面用于将提供商显示为“运营商”而非“组织”(默认值为 "true")

如需使用 New Edge 界面配置业务组织设置,请参阅 开始使用创收。

Monetization 限制

如需强制执行 Monetization 限制,请将 Monetization Limits Check 政策附加到 API 代理。 具体来说,在以下情况下会触发该政策:

  • 访问获利 API 的开发者未注册或未订阅费率 方案。
  • 开发者已超出订阅费率方案的交易量。
  • 开发者预付费账号余额或后付费信用额度已达到上限。

在上述情况下,Monetization Limits Check 政策会引发故障并阻止 API 调用。该政策扩展了 Raise Fault 政策,您可以自定义返回的消息 。适用条件源自业务变量。

如需了解详情,请参阅强制执行 API 代理的创收限制。