退款后退款

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档
信息

简介

通过变现功能,您可以针对“购买交易”向开发者发布退款。假设您是一家移动运营商,您向开发者提供了一个支付 API,以便他们向移动订阅者收取在应用内购买应用或内容的费用。每次订阅者使用 API 进行购买时,都算作一次购买交易。

购买交易可能会导致退款。例如,内容可能未交付,或者第三方对购买交易不满意。在这种情况下,开发者会向第三方退款。启用创收功能后,您便可以进行类似的退款。这对于收入分成计划尤其重要。

假设向移动订阅者退款的开发者为您的 API 产品购买了收益分成方案。假设该方案规定开发者应获得购买交易净价/总价的 70%。发布退款后,您实际上会撤消购买交易,也就是说,您会从开发者在退款应用月份(该月份可能与实际购买交易发生的月份不同)应得的付款中扣除 70%。

使用 Classic Edge 界面(仅限 Edge for Private Cloud)发布退款

您可以针对任何“成功”的购买交易(即 API 成功向第三方收费且您尚未针对该交易发放全额退款)发放退款。发布退款会导致系统创建具有父交易 ID 的退款交易,其中交易 ID 是购买交易的 ID。

您可以针对原始购买交易的全额或部分金额发放退款。您还可以多次发布部分退款,但退款总金额不得超过原始交易额。

如需发布退款,请执行以下操作:

  1. 在“创收”标签页中,选择“退款”。

    系统会打开“退款”页面。

  2. 在“结算月份”下拉菜单中,选择购买交易发生的月份。然后点击“+ 退款”。

    此页面会显示所选月份的所有成功购买交易的列表。

    您可以按开发者名称过滤退款列表,也可以搜索实际交易。

    如需按开发者过滤,请从“开发者”下拉菜单中选择相应开发者。此选项仅显示与所选开发者相关的交易的列表。

    如需按交易 ID 进行过滤,请输入您要退款的原始购买交易的交易 ID。此方法会返回相应 ID 的交易。

  3. 选中要退款的交易所在行中的“选择”框。
  4. 在“类型”下拉菜单中选择“全部”或“部分”。

    如果您选择“全部”,系统将退还购买交易的总金额。如果您选择“部分”,系统将退还购买交易的部分金额。

    如果您选择“部分”,请在“金额”字段中输入部分退款金额。您只能退还不超过购买交易总金额的款项。如果您已发布部分退款,则只能输入不超过购买交易剩余金额的金额。此外,如果原始购买交易同时包含总价和净价,您还需要说明要退款的部分金额是总价还是净价。

  5. 点击“保存”以处理退款(或点击“取消”以取消)。

    如果结算月份仍处于开放状态,退款将记入原始购买交易的月份;否则,退款将记入当前日期。

    对于部分退款,系统会处理部分金额的退款,并根据部分金额占总金额的比例扣除相应比例的收入分成。在上述部分退款示例中,部分退款金额为总价的 0.50/1.12 = 45%,因此将扣除开发者收益分成的 45%。

在界面中查看退款是否已处理

您可以在“退款”页面顶部选择结算月份,以确定退款是否已处理。如果结算月份仍处于开放状态,则为购买月份;如果结算月份已关闭,则为当前月份。系统会显示当月已过账的所有退款的列表。

使用 API 发布退款

如需发布退款,请向 /organizations/{org_name}/monetization-packages/{package_id}/refund-transactions 发出 POST 请求,其中 {package_id} 是退款所适用的 API 软件包的标识。

发出请求时,您需要以查询参数的形式指定:

  • 要退款的购买交易的标识。
  • 购买交易的收入类型(GROSSNET)。
  • 退款金额。
  • 说明退款原因的备注。

(可选)您可以将退款所适用的 API 软件包指定为网址参数。

如需查看您可以在退款请求中指定的网址参数的完整列表,请参阅退款配置设置

例如,以下请求会针对购买交易发放退款。退款金额为购买交易总金额的 50%。

$ curl -H "Content-Type:application/json" -X POST \
"https://api.enterprise.apigee.com/v1/mint/organizations/{org_name}/monetization-packages/payment/refund-transactions?revenueType=GROSS&refundAmount=0.5&parentTxId=abf50909-2492-4bf5-8704-ade05f4d43b3&transactionNote=Refund for purchase transaction" \
-u email:password

响应应类似如下所示(仅显示部分响应):

{
  "application" : {
    ...
    },
    "product" : [ {
      ...
      
     {
      "customAtt1Name" : "user",
      "description" : "Payment",
      "displayName" : "Payment",
      "id" : "payment",
      "name" : "payment",
      "organization" : {
        ...
      },
      "status" : "CREATED",
      "transactionSuccessCriteria" : "Status=='200 OK'"
    } ],
    ...
  },
  "currency" : "USD",
  "developer" : {
    ...
    "legalName" : "DEV ONE",
    "name" : "Dev One",
    "organization" : {
      ...
    },
    ...
  },
  "endTime" : "2013-09-01 21:59:59",
  "environment" : "PROD",
  "euroExchangeRate" : 0.8123,
  "gbpExchangeRate" : 0.6910,
  "grossPrice" : 0.5,
  "id" : "61f7eb88-f8cc-4cda-afd8-4a61fba3dd33",
  "isRevOnGrossOrNet" : "NET",
  "isVirtualCurrency" : false,
  "notes" : "Refund for purchase transaction",
  "itemDesc" : "test application",
  "netPrice" : 0.4464,
  "orgRevenueShareAmount" : 0.1339,
  "parentId" : "abf50909-2492-4bf5-8704-ade05f4d43b3",
  "pkgId" : "myorg@@@payment",
  "pkgRatePlanProductName" : "Payment",
  ...
  },
  "ratePlanLevel" : "STANDARD",
  "revenueShareAmount" : 0.3125,
  "startTime" : "2013-09-01 21:59:59",
  "status" : "SUCCESS",
  "tax" : 0.0536,
  "taxModel" : "UNDISCLOSED",
  "txProviderStatus" : "SUCCESS",
  "type" : "REFUND",
  "usdExchangeRate" : 1.0724,
  "utcEndTime" : "2013-09-01 21:59:59",
  "utcStartTime" : "2013-09-01 21:59:59"
}

API 的退款配置设置

您可以在退款请求中指定以下查询参数:

名称 说明 默认值 是否必需?
monetizationPackageId

退款所适用的 API 软件包。

不适用
parentTxId

要退款的购买交易。

不适用
revenueType

购买交易的收入类型(GROSSNET)。

不适用
refundAmount

退款金额。

不适用
transactionNote

说明退款原因的文本备注。

不适用

后续步骤

了解如何安排创收相关作业,以及安排创收作业中自动安排的作业。