注意
本文仅适用于在 GitHub Marketplace 上发布应用。有关在 GitHub Marketplace 上发布 GitHub Actions 的更多信息,请参阅“在 GitHub Marketplace 上发布 Actions”。
有关与计费相关的升级和降级的更多信息,请参阅“在您的应用中使用 GitHub Marketplace API”。
步骤 1. 定价计划变更事件
当客户对其GitHub Marketplace订单进行以下任何更改时,GitHub会向您的应用发送带有`changed`操作的`marketplace_purchase` webhook:
- 升级到更昂贵的定价计划或降级到更低价的计划。
- 向其现有计划添加或删除席位。
- 更改计费周期。
更改生效时,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订阅恢复到之前的状态。GitHub还会向客户发送电子邮件,告知他们失败并允许他们重新尝试购买。您将收到带有`changed`操作的Webhook,要求您恢复到之前的计划。
关于升级URL
您可以使用升级URL将用户从您的应用UI重定向到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`参数。