退款流程
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
概览
退款可以通过有效用户操作(按“退款”按钮)发起,也可以代表用户自动触发。无论触发条件为何,Google 都会向集成商发送退款申请。
该流程的运作方式
以下是用户启动的退款流程示例:
退款流程

以下是上图中的对象列表:
- 用户:想要全额退款或部分退款的用户。
- Google 服务器:向付款集成商服务器发送退款命令的 Google 后端服务器。
- 付款集成商服务器:接受退款请求的集成商的后端服务器。
在此示例中,退款由用户发起。
- 用户向 Google 服务器发起退款。
- Google 服务器调用付款集成商服务器上的
Refund
端点。
- 付款集成商服务器返回“成功”响应。
- 用户获得退款。
最佳实践和其他注意事项
因为只要帐号中存有赠送金额,Google 的某些产品(例如 AdWords)就支持退款,因此应无限期支持交易退款申请。如果存在技术限制,退款期限应与您的平台允许的时间一样长。
如果 GPT 已过期,退款应该仍然可以正常进行。只有在原始交易中的余额不足以支付退款金额,或者相应帐号已关闭或处于暂停状态且集成商无法将这笔款项汇给用户时,系统才能拒绝退款。
可在拍摄后的几秒内发起退款。退款时间由 Google 自行决定。
退款绝不应被视为全额退款。向帐号退款时,必须始终考虑 refundAmount
字段。
必须支持多项部分退款。例如,假设发生了一笔价值 11.00 美元的交易,用户可以从原始交易中退款 4.00 美元、5.00 美元和 1.00 美元。在这种情况下,所有三次退款的 merchantTransactionId
值相同,但 requestId
值不同。此外,这笔交易只剩 1.00 美元了。
现在,假设有一笔金额为 12.00 美元的购买交易。在本示例中,用户可以进行两笔退款,每笔退款金额为 6.00 美元。如果这两笔退款的 requestId
值不同(并且 merchantTransactionId
相同),则必须对同一笔交易将它们视为不同的退款。在这种情况下,一旦完成这些退款,用户交易中的剩余款项将为零。
保留所有权利。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-25。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["没有我需要的信息","missingTheInformationINeed","thumb-down"],["太复杂/步骤太多","tooComplicatedTooManySteps","thumb-down"],["内容需要更新","outOfDate","thumb-down"],["翻译问题","translationIssue","thumb-down"],["示例/代码问题","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-07-25。"],[],["Refunds are triggered by user action or automatically. Google sends a refund request to the Payment Integrator Server, which responds with success. Refunds should be supported indefinitely, unless technical limitations exist. Refunds should work even if the GPT is expired and can be initiated seconds after capture. Partial refunds are supported and are treated as separate refunds on the same transaction. Integrators must use the `refundAmount` field and handle multiple partial refunds, with each having a unique `requestId` but the same `merchantTransactionId`.\n"]]