配置事务记录政策

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

按照下文所述,为 API 产品套装中的每个 API 产品配置交易记录政策。

简介

交易记录政策允许创收功能捕获交易参数和 自定义属性。创收功能需要此信息才能进行创收处理 例如应用费率方案

例如,如果您设置了收益分成费率方案, 对于每笔涉及创收 API 产品的交易产生的收入,Google 会分成分成 与发出请求的应用的开发者联系。收益分成以净收入或总收入 交易价格(由您指定具体价格),即总价或净价的一定百分比 并据此确定收益分成。因此 了解交易的总价或净价(如适用)。它会获取总价或净价 更改。

如果您设置了价目表 即您需要针对每笔交易向开发者收费,也可为方案设置费率 基于自定义属性,例如在事务中传输的字节数。 创收团队需要知道自定义属性是什么以及在哪里可以找到它。因此,您需要 在交易记录政策中指定自定义属性。

除了在交易记录政策中指定交易属性外,您还可以 指定交易成功标准以确定交易何时成功( )。有关设置交易成功标准的示例,请参阅在交易记录中设置交易成功标准的示例 政策。您还可以为 API 产品(您对其使用的基本费率)指定自定义属性。 方案费用)。

配置事务记录政策

访问“商品套装”页面(如下所述)。

Edge

使用 Edge 界面添加 API 产品套装时,您需要配置交易记录政策 执行以下操作:

  1. 如果产品包中有多个 API 产品,请在 Transaction Recording Policy(交易记录政策)部分中选择要配置的 API 产品。
  2. 配置交易属性
  3. 配置自定义属性
  4. 关联具有唯一交易 ID 的资源
  5. 配置退款
  6. 针对 API 产品捆绑包中定义的每个 API 产品重复执行上述操作。

传统 Edge(私有云)

如需使用传统版 Edge 界面配置事务录制政策,请执行以下操作:

  1. 登录 http://ms-ip:9000,其中 ms-ip 是管理服务器节点的 IP 地址或 DNS 名称。
  2. 选择发布 >商品
  3. 点击适用 API 所在行中的 + 交易记录政策。 产品。此时会显示“新建交易记录政策”窗口。
  4. 通过执行以下步骤来配置事务记录政策: <ph type="x-smartling-placeholder">
  5. 点击保存

配置交易属性

交易属性部分,指定成功创收交易的条件。

  1. 交易成功标准字段中,根据状态属性的值指定表达式 以确定交易何时成功(用于计费)。未成功的交易 (即它们不符合表达式中的条件)会被记录,但是费率方案不会应用于它们。例如:

    txProviderStatus == 'OK'

  2. Status 属性包含在 Transaction Success 条件字段。通过定义以下字段来配置 Status 属性:
    字段 说明
    API 资源 在 API 产品中定义的 URI 格式,用于标识获利交易。
    响应位置 响应的指定属性的位置。有效值包括:流变量、标头、JSON 正文和 XML 正文。
    响应的值。要指定多个值,请点击 + 添加 x(例如 + 添加流变量)。
  3. 要配置可选交易属性,请启用使用可选属性开关,并配置 下表中定义的任意交易属性。
    属性 说明
    总价

    此属性仅适用于使用收益分成模型的费率方案。 对于那些价格方案,总价或净价是必填项。请确保 数值表示为字符串类型。交易的总价。对于 则需记录总价属性或净价 属性。哪个属性是必需的,取决于收益分成的依据。对于 例如,您可以设置一个以广告资源总价为基础的收益分成费率方案, 交易。在这种情况下,“毛价”字段为必填字段。

    净价

    此属性仅适用于使用收益分成模型的费率方案。 对于那些价格方案,总价或净价是必填项。请确保 数值表示为字符串类型。交易的净价。对于 则需记录“净价”字段或“总价” 字段。哪个字段是必填字段取决于收益分成的依据。例如: 您可以制定基于交易净价的收益分成费率方案。 在这种情况下,“净价”字段为必填字段。

    货币

    对于使用收益分成模型的费率方案,此属性为必需属性。 适用于交易的货币类型。

    错误代码

    与事务关联的错误代码。它能进一步提供 有关失败交易的信息。

    商品描述

    交易的说明。

    税费

    此属性仅适用于收益分成模式,且仅适用于以下情况 API 调用会捕获税费金额。确保数值的表示形式 作为字符串类型。购买交易的税额。净价加税费 = 总价。

例如,通过设置以下值,创收功能会从 名为 response.reason.phrase 的变量。如果值正常,且 创收限制检查政策 附加到 API 代理 ProxyEndpoint 请求,创收功能会将其计为一次交易。

字段
交易成功标准 txProviderStatus == 'OK'
状态:API 资源 **
状态:响应位置 流变量
状态:流变量 response.reason.phrase

配置自定义属性

在“自定义属性”部分,您确定要包含在中的自定义属性。 交易记录政策。例如,如果您设置了一个价目表方案, 交易时,您可以根据自定义属性(如 在事务中传输的字节数。然后,您需要将该自定义属性添加到 交易记录政策。

这些属性都存储在处理记录日志中,您可以查询该日志。它们也是 (以便在您创建费率方案时 (用于为方案确定费率)。

您可以在收入中添加交易记录政策中定义的自定义属性 摘要报告,如 包括自定义交易 属性

要配置自定义属性,请启用 Use Custom Attributes 切换开关,并定义 最多 10 个自定义属性。对于您在交易记录政策中包含的每个自定义属性, 您需要指定以下信息。

字段 说明
自定义属性名称 输入描述自定义属性的名称。如果费率方案基于自定义属性 此名称会在费率方案详情中向用户显示。 例如,如果自定义属性捕获时长,则您应为该属性命名。 自定义属性的实际单位(例如小时、分钟或秒)在“评分单位”字段中设置 创建自定义属性费率方案时 (请参阅使用自定义属性详细信息指定费率方案)。
API 资源 选择在事务中访问的 API 资源的一个或多个 URI 后缀(即基本路径后面的 URI 片段)。 可用资源与交易属性相同。
响应位置 在响应中选择指定属性的位置。有效值包括:流变量、标头、JSON 正文和 XML 正文。
为自定义属性指定一个值。您指定的每个值都对应 或在您指定的位置提供自定义属性的内容元素。要指定多个值,请点击 + 添加 x(例如 + 添加流变量)。

例如,如果您配置名为“内容长度”的自定义属性,并选择“标头”作为响应位置, 如果 HTTP Content-Length 字段中提供“内容长度”值,则您应将值指定为 Content-Length

有些事务很简单,涉及对一个资源的 API 调用。不过, 可能更为复杂例如,假设有一笔用于购买应用内商品的交易 一款移动游戏应用中的产品涉及多个资源调用:

  • 调用预留 API,确保预付费用户有足够的余额来购买 并分配(“预留”)购买资金。
  • 调用 charge API,从预付款用户的账号中扣除资金。

要处理整个交易,创收需要通过一种方式关联第一个资源(即 对预留 API 的调用和响应)与第二个资源(对 以及通过 charge API 实现。为此,它需要根据您在 将资源与唯一交易 ID 相关联部分。

要配置自定义属性,请启用使用唯一的交易 ID 切换开关并进行关联 交易对于每个事务,您需要指定资源、响应位置和 与另一个 交易。

例如,假设预留 API 调用和 charge API 调用按以下方式相关联: 预留 API 响应标头中名为 session_id 的字段对应于 响应标头(名为 reference_id)。在这种情况下,您可以设置 使用唯一交易 ID 关联资源部分,如下所示:

资源 回复位置
reserve/{id}**

标题

session_id
/charge/{id}**

标题

reference_id

配置退款

退款部分,您可以指定 用于处理退款的获利方式。

例如,假设用户从某家经销商处购买了 使用您的获利 API 的移动应用。系统会根据共享 收入方案不过,假设用户对商品不满意,想要退回。如果 系统通过调用用于退款的 API 对商品进行退款,创收功能 进行必要的变现调整系统会根据您在 交易记录政策的“退款”部分。

要配置退款,请将使用退款属性开关切换到开启状态,然后定义退款详情:

  1. 通过定义以下字段来定义退款条件:
    字段 说明
    响应位置 退款交易的资源。如果 API 产品提供 多个资源,您可以仅选择执行退款的资源。
    退款成功标准 基于以下对象的 状态属性(如下文所述),用于确定退款交易成功(对于扣款 目的)。对不成功的交易进行退款(即这些交易不符合 表达式),但是不会对其应用费率计划。例如:

    txProviderStatus == 'OK'

  2. 通过定义以下字段来配置 Status 属性:
    字段 说明
    响应位置 响应的指定属性的位置。有效值包括:流变量、标头、JSON 正文和 XML 正文。
    响应的值。要指定多个值,请点击 + 添加 x(例如 + 添加流变量)。
  3. 通过定义以下字段来配置父级 ID 属性:
    字段 说明
    响应位置 响应的指定属性的位置。有效值包括:流变量、标头、JSON 正文和 XML 正文。
    正在处理退款的交易的 ID。例如,如果用户在购买商品后申请退款, 父级交易 ID 是指购买交易的 ID。要指定多个值,请点击 + 添加 x(例如 + 添加流变量)。
  4. 要配置可选的退款属性,请将使用可选的退款属性开关切换到启用状态,然后配置 属性。可选的退款属性与可选的交易属性相同,如 配置交易属性

使用 API 管理交易记录政策

以下各部分介绍了如何使用 API 管理交易记录政策。

使用 API 创建交易记录政策

您可以将交易记录政策指定为 API 产品的属性。 属性标识:

  • 交易记录政策适用的产品资源的 URI 后缀 已附加。后缀包含一个用大括号括起来的模式变量。模式 变量由 API 服务在运行时评估。例如,以下 URI 后缀 包含模式变量 {id}
    /reserve/{id}**
    

    在这种情况下,API 服务会将资源的 URI 后缀评估为 /reserve,后跟以该 API 定义的 ID 开头的任何子目录 提供商。

  • 响应中附有的资源。一个 API 产品可以有多个 并且每个资源都可以将事务记录政策附加到来自 该资源。
  • 提取变量政策,用于启用交易记录政策以提取内容 从您想要捕获的交易参数的响应消息中获取。

您可以通过发出 PUT 请求,将交易记录政策属性添加到 API 产品中。 管理 API https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} (而不是针对 Monetize API)

使用 API 指定交易成功标准

您可以指定交易成功标准,以确定交易何时成功 (用于充电)。不成功的交易(即它们满足条件) ),但费率方案不会对其应用。如需查看设置示例 请参阅 在交易记录政策中设置交易成功标准的示例

您将交易成功标准指定为 API 产品的属性。为此, 向管理 API 发出 PUT 请求 https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} (而不是针对 monetization API)。

例如,在以下请求中,如果 txProviderStatussuccess(与交易成功标准相关 突出显示。

$ 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 向 Management API 发出的请求 https://api.enterprise.apigee.com/v1/organizations/{org_name}/apiproducts/{apiproduct_Id} (而不是针对 monetization 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 是创收功能使用的内部变量 以确定交易是否成功

<ph type="x-smartling-placeholder">
成功标准表达式 是否为有效表达式? 来自 API 代理的 txProviderStatus 值 评估结果
null true "200" false
"" false "200" false
" " false "200" false
"sdfsdfsdf" false "200" false
"txProviderStatus =='100'" true "200" false
"txProviderStatus =='200'" true "200" true
"true" true "200" true
"txProviderStatus=='OK' OR
txProviderStatus=='Not Found' OR
txProviderStatus=='Bad Request'"
true "OK" true
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" true "OK" true
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" true "Not Found" true
"txProviderStatus matches '(OK)|(Not Found)|(Bad Request)'" true "Bad Request" true
"(txProviderStatus?:'') matches '(?i)(OK)|(Not Found)|(Bad Request)'" true "Bad Request" true
"(txProviderStatus?:'') matches '(?i)(OK)|(Not Found)|(Bad Request)'" true null false
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" true "bad request" true
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" true "Redirect" false
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" true "heeeelllooo" false
"txProviderStatus matches '(?i)(OK)|(Not Found)|(Bad Request)'" true null false
"txProviderStatus == 100" true "200" false