您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档。 信息
简介
利用创收功能,您可以向开发者发放“购买交易”的退款。假设您是一家移动运营商,您向开发者提供付款 API,用于向移动订阅者收取购买应用或应用内内容的费用。每当订阅者使用该 API 进行购买时,相当于一笔购买交易。
购买交易可能会导致退款。例如,内容可能未交付,或者第三方对购买交易不满意。在此类情况下,开发者会向第三方发放退款。“创收”功能可让您提供类似的退款。这与收益分成方案密切相关。
假设向移动订阅者发放退款的开发者为您的 API 产品购买了收益分成方案。假设方案要求开发者获得购买交易净价/总价的 70%。发布退款实际上就是撤消购买交易,也就是说,您将从应用退款的当月应付给开发者的款项中扣除 70%(此月可能不同于实际购买交易发生的月份)。
使用传统版 Edge 界面发布退款(仅限适用于私有云的 Edge)
您可以针对任何“成功”的购买交易(即 API 已成功向第三方收取了费用,且您尚未发放全额退款)发放退款。发布退款会创建具有父级交易 ID 的退款交易,其中交易 ID 是购买交易的 ID。
您可以退还原始购买交易的全额款项或部分款项。您也可以发布多次部分退款,但退款总金额不得超过原始交易额。
要发布退款,请执行以下操作:
- 在“创收”标签页上,选择“退款”。
系统随即会打开“退款”页面。
- 在“结算月份”下拉菜单中,选择购买交易发生的月份。然后点击“+ 退款”。
系统会显示所选月份的所有成功购买交易的列表。
您可以按开发者名称或搜索实际交易来过滤退款列表。
如需按开发者进行过滤,请从“开发者”下拉菜单中选择该开发者。这里会显示与所选开发者相关的交易列表。
如需按交易 ID 进行过滤,请输入您想要退款的原始购买交易的交易 ID。这将返回该 ID 的交易。
- 选中您想要退款的交易所在行中的“选择”复选框。
- 在“类型”下拉菜单中选择“总计”或“部分”。
如果选择“合计”,将退还购买总额。如果选择“部分退款”,则系统将退还购买的部分金额。
如果您选择“部分退款”,请在“金额”字段中输入部分退款的金额。您最高只能退还购买交易总额。如果您已办理部分退款,则只能输入不超过购买交易剩余金额的金额。此外,如果原始购买交易同时具有总价和净价,您还需要说明要退还的部分金额是总价还是净价。
- 点击“保存”处理退款(或点击“取消”取消)。
如果结算月份仍然有效,则退款会发布到原始购买交易的月份,否则退款会发布到当前日期。
对于部分退款,退款将按部分金额发放,并且任何收益分成都会根据部分金额占全部金额的比例进行扣减。在上面的部分退款示例中,部分金额为总价的 0.50/1.12 = 45%,因此扣除开发者收益分成的 45%。
在界面中查看退款是否已处理
您可以在“退款”页面顶部选择结算月份,以确定退款是否已处理。如果结算月份仍处于有效状态,则该月份为购买交易月份;如果结算月份结束,则该月份为当月。系统会显示该月已发放的所有退款的列表。
使用 API 发布退款
要发布退款,请向 /organizations/{org_name}/monetization-packages/{package_id}/refund-transactions
发出 POST 请求,其中 {package_id}
是退款适用的 API 软件包的标识。
在发出请求时,您需要指定为查询参数:
- 正在退款的购买交易的识别号。
- 购买交易的收入类型(
GROSS
或NET
)。 - 退款金额。
- 说明退款原因的备注。
(可选)您可以将退款适用的 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 |
购买交易的收入类型( |
不适用 | 是 |
refundAmount |
退款金额。 |
不适用 | 是 |
transactionNote |
说明退款原因的文字备注。 |
不适用 | 是 |
后续步骤
如需了解如何安排与创收相关的作业以及系统自动安排的作业,请参阅安排创收作业。