跳至主要内容

处理新购买和免费试用

当客户购买 GitHub Marketplace 应用的付费计划、免费试用版或免费版本时,您将收到包含 `purchased` 操作的 marketplace_purchase 事件 Webhook,从而启动购买流程。

注意

本文仅适用于在 GitHub Marketplace 发布应用。有关在 GitHub Marketplace 发布 GitHub Actions 的更多信息,请参阅“在 GitHub Marketplace 发布 Actions”。

如果您在 GitHub Marketplace 提供 GitHub 应用,您的应用必须按照 OAuth 授权流程识别用户。您无需设置单独的 OAuth 应用来支持此流程。有关更多信息,请参阅“代表用户使用 GitHub 应用进行身份验证”。

步骤 1. 初始购买和 Webhook 事件

在客户购买您的 GitHub Marketplace 应用之前,他们会选择一个 列表计划。他们还会选择是从个人帐户还是组织帐户购买应用。

客户通过单击**完成订单并开始安装**来完成购买。

然后,GitHub 会将包含 `purchased` 操作的 marketplace_purchase Webhook 发送到您的应用。

marketplace_purchase Webhook 读取 effective_datemarketplace_purchase 对象,以确定客户购买的计划、计费周期何时开始以及下一个计费周期何时开始。

如果您的应用提供免费试用版,请从 Webhook 读取 marketplace_purchase[on_free_trial] 属性。如果值为 `true`,则您的应用需要跟踪免费试用版开始日期 (effective_date) 和免费试用版结束日期 (free_trial_ends_on)。使用 free_trial_ends_on 日期在应用的 UI 中显示免费试用版剩余的天数。您可以在横幅或 计费 UI 中执行此操作。要了解如何在免费试用版结束之前处理取消,请参阅“处理计划取消”。请参阅“处理计划更改”,了解如何在免费试用版到期时将免费试用版转换为付费计划。

请参阅“GitHub Marketplace API 的 Webhook 事件”,了解 marketplace_purchase 事件有效负载的示例。

步骤 2. 安装

如果您的应用是 GitHub 应用,GitHub 会在客户购买应用时提示客户选择应用可以访问哪些存储库。然后,GitHub 会将应用安装到客户选择的帐户上,并授予对所选存储库的访问权限。

此时,如果您在 GitHub 应用设置中指定了**安装 URL**,GitHub 将会将客户重定向到该 URL。如果您未指定安装 URL,则无法处理 GitHub 应用的购买。

注意

在 GitHub 应用设置中,**安装 URL** 被描述为可选字段,但如果您要在 GitHub Marketplace 中提供您的应用,则它是必需字段。有关更多信息,请参阅“关于安装 URL”。

如果您的应用是 OAuth 应用,GitHub 不会将其安装在任何位置。相反,GitHub 会将客户重定向到您在 GitHub Marketplace 列表 中指定的**安装 URL**。

当客户购买 OAuth 应用时,GitHub 会将客户重定向到您选择的 URL(安装 URL),并且该 URL 包含客户选择的定价计划作为查询参数:marketplace_listing_plan_id

步骤 3. 授权

当客户购买您的应用时,您必须引导客户完成 OAuth 授权流程。

  • 如果您的应用是 GitHub 应用,则在 GitHub 将客户重定向到**安装 URL** 后立即开始授权流程。请按照“代表用户使用 GitHub 应用进行身份验证”中的步骤操作。

  • 如果您的应用是 OAuth 应用,则在 GitHub 将客户重定向到**安装 URL** 后立即开始授权流程。请按照“授权 OAuth 应用”中的步骤操作。

对于任何类型的应用,第一步都是将客户重定向到 https://github.com/login/oauth/authorize

客户完成授权后,您的应用将收到客户的 OAuth 访问令牌。您需要此令牌才能执行下一步。

注意

在为免费试用版客户授权时,授予他们与付费计划相同的访问权限。试用期结束后,您会将其转移到付费计划。

步骤 4. 配置客户帐户

您的应用必须为所有新购买配置客户帐户。使用您在 步骤 3. 授权 中收到的客户访问令牌,调用“GET /user/marketplace_purchases”端点。响应将包含客户的 account 信息,并显示他们是否处于免费试用版 (on_free_trial)。使用此信息完成设置和配置。

注意

在当前版本的 GitHub Marketplace 中,客户在已拥有从您的应用网站购买的现有帐户时,仍然可以通过 GitHub Marketplace 购买您的应用。如果您发现您已经为购买了您的应用的客户设置了帐户,请向 GitHub 支持 报告“重复”购买。

如果购买是针对组织且按用户付费,您可以提示客户选择哪些组织成员可以访问已购买的应用。

您可以自定义组织成员访问您的应用的方式。以下是一些建议

**固定价格:**如果使用固定价格为组织进行购买,您的应用可以通过 API 获取所有组织的成员,并提示组织所有者选择哪些成员将在集成商端拥有付费用户。

**按单位计价:**一种配置按单位计价席位的方法是允许用户在登录应用时占用席位。一旦客户达到席位数量阈值,您的应用可以提醒用户需要通过 GitHub Marketplace 升级。