注意
本文仅适用于在 GitHub Marketplace 发布应用。有关在 GitHub Marketplace 发布 GitHub Actions 的更多信息,请参阅 在 GitHub Marketplace 发布操作。
有关计费相关的升级与降级的更多信息,请参阅 在您的应用中使用 GitHub Marketplace API。
步骤 1. 定价计划更改事件
当客户对其 GitHub Marketplace 订单进行以下任意更改时,GitHub 会向您的应用发送 marketplace_purchase webhook,操作为 changed。
- 升级到更高价位的定价计划或降级到更低价位的计划。
- 向现有计划中增加或移除席位。
- 更改计费周期。
GitHub 会在更改生效时发送该 webhook。例如,客户降级计划时,GitHub 会在客户计费周期结束时发送 webhook;当客户升级计划时,GitHub 会立即发送 webhook 以便客户能够立刻使用新服务。如果客户将计费周期从月度切换为年度,这被视为一次升级。更多关于哪些操作算作升级或降级,请参阅 计费客户。
从 marketplace_purchase webhook 中读取 effective_date、marketplace_purchase 与 previous_marketplace_purchase,用于更新计划的开始日期以及更改客户的计费周期和定价计划。请参阅 GitHub Marketplace API 的 webhook 事件,了解 marketplace_purchase 事件负载示例。
如果您的应用提供免费试用,当免费试用到期时,您将收到带有 changed 操作的 marketplace_purchase webhook。免费试用到期后,请将客户升级至该试用计划的付费版本。
步骤 2. 更新客户账户
您需要更新客户的账户信息,以反映其在 GitHub Marketplace 订单中所做的计费周期和定价计划更改。当收到 changed 操作的 webhook 时,请在您的 Marketplace 应用网站或应用 UI 上显示计划升级、seat_count(按单位计费的计划)以及计费周期。
当客户降级计划时,建议检查客户是否已超出其计划限制,并通过 UI 或电话、邮件等方式直接与其沟通。
为了鼓励用户升级,您可以在应用 UI 中展示升级 URL。更多细节请参阅 关于升级 URL。
注意
我们建议定期使用 GET /marketplace_listing/plans/:id/accounts 进行同步,以确保您的应用拥有每个账户的正确计划、计费周期信息以及单位数量(针对按单位计费的计划)。
升级付款失败
如果客户在升级计划时付款失败,GitHub 会将其 GitHub Marketplace 订阅恢复至之前的状态,并向客户发送邮件通知其付款失败并允许其重新尝试购买。您将收到带有 changed 操作的 webhook,要求您恢复到先前的计划。
关于升级 URL
您可以在应用 UI 中提供升级 URL,将用户重定向至 GitHub 完成升级。
https://www.github.com/marketplace/<LISTING_NAME>/upgrade/<LISTING_PLAN_NUMBER>/<CUSTOMER_ACCOUNT_ID>
例如,如果您发现某位客户当前使用的是 5 人计划,需要升级到 10 人计划,您可以在应用 UI 中显示一个按钮(如 “点击此处升级”)或在横幅中放置指向升级 URL 的链接。该升级 URL 会把客户带到您所列计划的升级确认页面。
使用客户想购买的计划的 LISTING_PLAN_NUMBER。当您创建新的定价计划时,它们会获得一个 LISTING_PLAN_NUMBER(在您的列表中每个计划唯一)以及一个 LISTING_PLAN_ID(在 GitHub Marketplace 中唯一)。您可以在 列出计划 时查看这些编号,页面会列出您列表的定价计划。使用 LISTING_PLAN_ID 与 GET /marketplace_listing/plans/{plan_id}/accounts 接口获取 CUSTOMER_ACCOUNT_ID。
注意
如果客户升级了额外的单位(例如席位),您仍然可以将其引导至相应的计划进行购买,但目前我们尚不支持 unit_count 参数。