使用自定义属性配置费率方案

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

简介

在某些情况下,您可能需要基于变量或自定义值的交易计数器。 例如,您可能需要:

  • 根据 API 消息中提供的值,向开发者收取可变金额的费用 调用。例如,您可能希望根据字节数向应用开发者收费 。
  • 将多个 API 调用捆绑到单个事务中。

使用包含自定义属性的费率方案,您可以识别 API 消息中的值 调用,该调用会用作计数器,并用于计算交易计数和费用。

系统支持以下包含自定义属性的费率方案:

  • 包含自定义属性的价目表
  • 带有自定义属性的可调整通知

每个费率方案最多可以设置 10 个自定义属性。

了解自定义属性计算

自定义属性值在费率方案交易计数和费用中的作用 取决于充电模式,如下表所示。

充电模式 自定义属性计算
固定费率和带区块体积

custom attribute number * rate = charge to developer

对于固定费率,自定义属性编号会变成 将乘以费率对于卷带,每个带中的事务数 递增,则开发者需要为此付费 交易次数例如,如果消息中的某个自定义属性值为 10, 那么开发者需要支付 10 笔交易的费用,而这 10 笔交易 当前频段数。如果开发者当前仅剩 6 笔交易 6 乘以该频段的速率剩下的 4 个会被用于下一个乐队 然后乘以该频段的速率

在音量带状方案中,如果最后一个音量频段有限制(并非“无限制”),并且 则会出现以下两种情况:

套装

由于套装按组(而非交易)收费,因此以下 的计算过程:

custom attribute number = amount added to bundle count

例如,如果消息中的自定义属性编号为 10,则系统会将 10 添加到 捆绑包中使用的交易次数。如果开发者只有 6 个 那么系统就会填充该 bundle 并填充下一个 递增 4。下一个套装的费率(如果有)为 。

如果最后一个 bundle 有上限(不是“unlimited”),而交易超出该上限 会发生以下两种情况:

可调整的通知

对于可调整的通知,会进行以下计算:

custom attribute number = amount added to transaction count

例如,如果消息中的自定义属性编号为 10,则系统会将 10 添加到 交易总次数

价格方案会在哪里 自定义属性值

交易记录政策(针对 API 产品包)规定了创收的侧重点 消息。您可以在“自定义属性”中定义自定义属性 部分。

然后,您可以在创建 API 后,在费率方案中选择该自定义属性 商品套装中包含交易记录政策,且 自定义属性。

总体流程如下:

  1. 添加 API 产品时定义自定义属性。
  2. 创建包含相应商品的 API 商品套装。
    在 API 产品套装的交易记录政策中,添加将要 用于定义费率方案
  3. 创建费率方案,类型为价目表或可调整的通知 并为 API 商品套装指定自定义评分参数

下图显示了 交易记录政策和价目表方案配置。通过 与自定义属性费率方案关系的可调整通知类似,但音量范围值不适用。

如何生成自定义 消息中的属性值

交易记录政策可以在多个位置查找自定义属性值, 例如响应标头、响应正文或响应中预定义的流变量。 (该请求不可用,因为在您成功完成交易之前,交易不是正式的 response.)以下示例展示了如何添加带有响应标头的 将其数值添加到消息中。在这两种情况下,我们都会使用“分配消息”政策 结合变量。

将请求载荷大小添加到响应标头

每个消息请求中都有一个 client.received.content.length 变量, 包含请求负载中的字节数。通过将“分配消息”政策附加到 代理端点响应时,我们可以生成一个名为 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>

设置价格方案

除了上述自定义属性设置之外,价格方案的设置方式相同 与往常一样(适用于不含自定义属性的费率方案),但必须遵守 以下要求。

<ph type="x-smartling-placeholder">

在界面中使用自定义属性配置价目表方案

如以下部分所述,使用 Edge 界面或传统版 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. Aggregation Basis 设置为 系统会汇总交易数据请选择一个介于 1 到 24 个月的数字。此值默认为 1 。
  7. 点击 Apply and Close
  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