新しい購入や無料トライアルの処理

顧客が有料プラン、無料のトライアル、あるいはGitHub Marketplaceアプリケーションの無料バージョンを購入した場合、purchasedアクションが付いたmarketplace_purchaseイベント webhookを受信することになり、それによって購入フローが開始されます。

If you offer a GitHub App in GitHub Marketplace, your app must identify users following the OAuth authorization flow. You don't need to set up a separate OAuth App to support this flow. See "Identifying and authorizing users for GitHub Apps" for more information.

ステップ 1. 最初の購入とwebhookイベント

GitHub Marketplaceアプリケーションを購入する前に、顧客はリストプランを選択します。 顧客は、アプリケーションの購入を自分の個人アカウントから行うのか、あるいはOrganizationアカウントから行うのかも選択します。

Complete order and begin installation(注文を完了してインストールを開始)をクリックすることで、顧客は購入を完了します。

GitHub then sends the marketplace_purchase webhook with the purchased action to your app.

marketplace_purchase webhookからeffective_datemarketplace_purchaseを読み取り、顧客が購入したプラン、支払いサイクルの開始時点、次の支払いサイクルの開始時点を判断してください。

アプリケーションが無料トライアルを提供しているなら、webhookからmarketplace_purchase[on_free_trial]属性を読んでください。 この値がtrueなら、アプリケーションは無料トライアルの開始日(effective_date)と、無料トライアルの終了日(free_trial_ends_on)を追跡しなければなりません。 アプリケーションのUIに無料トライアルの残日数を表示するのには、free_trial_ends_onの日付を使ってください。 これはバナーか、支払いUIのいずれでも行えます。 無料トライアルの終了前のキャンセルの処理方法を学ぶには、「プランのキャンセルの処理」を参照してください。 無料トライアルの終了時点での無料トライアルから有料プランへの移行方法を知るには、「プランの変更の処理」を参照してください。

marketplace_purchaseイベントペイロードの例については「GitHub Marketplace webhookイベント」を参照してください。

ステップ 2. インストール

If your app is a GitHub App, GitHub prompts the customer to select which repositories the app can access when they purchase it. GitHub then installs the app on the account the customer selected and grants access to the selected repositories.

At this point, if you specified a Setup URL in your GitHub App settings, GitHub will redirect the customer to that URL. If you do not specify a setup URL, you will not be able to handle purchases of your GitHub App.

Note: The Setup URL is described as optional in GitHub App settings, but it is a required field if you want to offer your app in GitHub Marketplace.

If your app is an OAuth App, GitHub does not install it anywhere. Instead, GitHub redirects the customer to the Installation URL you specified in your GitHub Marketplace listing.

When a customer purchases an OAuth App, GitHub redirects the customer to the URL you choose (either Setup URL or Installation URL) and the URL includes the customer's selected pricing plan as a query parameter: marketplace_listing_plan_id.

ステップ 3. 認可

顧客がアプリケーションを購入したら、顧客をOAuthの認可フローに送らなければなりません。

  • If your app is a GitHub App, begin the authorization flow as soon as GitHub redirects the customer to the Setup URL. Follow the steps in "Identifying and authorizing users for GitHub Apps."

  • If your app is an OAuth App, begin the authorization flow as soon as GitHub redirects the customer to the Installation URL. Follow the steps in "Authorizing OAuth App."

どちらの種類のアプリケーションでも、最初のステップは顧客をhttps://github.com/login/oauth/authorizeにリダイレクトさせることです。

顧客が認可を完了すると、アプリケーションは顧客のOAuthアクセストークンを受け取ります。 このトークンは、次のステップで必要になります。

ノート: 顧客を無料トライアルで認可する場合は、有料プランの場合と同じアクセス権を付与してください。 それらの顧客は、無料の期間が終了したら有料プランに移行させます。

ステップ 4. 顧客アカウントのプロビジョニング

アプリケーションは、すべての新規購入に対して顧客アカウントをプロビジョニングしなければなりません。 ステップ3 認可で受け取った顧客のアクセストークンを使い、 「認証されたユーザのサブスクリプションのリスト」エンドポイントを呼び出してください。 レスポンスには顧客のaccount情報が含まれ、その顧客が無料トライアルを利用しているかが示されます(on_free_trial)。 この情報を使って、セットアップとプロビジョニングを完了させてください。

ノート:GitHub Marketplaceの現在のバージョンでは、アプリケーションのWebサイトで購入したアカウントをすでに持っている顧客が、GitHub Marketplaceを通じてアプリケーションを購入できてしまいます。 アプリケーションを購入した顧客に対して、すでにアカウントがセットアップされていることに気づいたら、GitHub Supportに「二重」購入を報告してください。

購入がOrganizationのためのものであり、ユーザごとであるなら、顧客に対して購入されたアプリケーションにアクセスできるOrganizationのメンバーの選択を求めることができます。

Organizationのメンバーがアプリケーションへのアクセスを受け取る方法は、カスタマイズできます。 いくつかの例を挙げましょう。

定額料金: Organizationに対して定額料金での購入が行われたなら、アプリケーションはAPI経由でOrganizationの全メンバーを取得して、Organizationの管理者に対してどのメンバーがインテグレーター側で有料ユーザとなるかの選択を求めることができます。

ユニット単位の料金: ユニットシートごとにプロビジョニングする方法の1つは、ユーザがアプリケーションにログインしたときにシートを使用できるようにすることです。 顧客がシートカウントの閾値に達した場合、アプリケーションはユーザに対してGitHub Marketplaceを通じてアップグレードする必要があることを警告できます。

このドキュメントは役立ちましたか?プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?

GitHubコミュニティで質問するサポートへの連絡