退款后退款

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

简介

利用创收功能,您可以向开发者发放“购买交易”的退款。假设您是一家移动运营商,您向开发者提供付款 API,用于向移动订阅者收取购买应用或应用内内容的费用。每当订阅者使用该 API 进行购买时,相当于一笔购买交易。

购买交易可能会导致退款。例如,内容可能未交付,或者第三方对购买交易不满意。在此类情况下,开发者会向第三方发放退款。“创收”功能可让您提供类似的退款。这与收益分成方案密切相关。

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

使用传统版 Edge 界面发布退款(仅限适用于私有云的 Edge)

您可以针对任何“成功”的购买交易(即 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

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

不适用

后续步骤

如需了解如何安排与创收相关的作业以及系统自动安排的作业,请参阅安排创收作业