ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

プラン変更の処理

GitHub Marketplace アプリケーションのアップグレードあるいはダウングレードによって、marketplace_purchase イベント webhookがchangedアクション付きでトリガされ、それによってアップグレードあるいはダウングレードのフローが開始されます。

支払いに関連するアップグレード及びダウングレードに関する詳しい説明については「GitHub Marketplace APIとのインテグレーション」を参照してください。

ステップ 1. 料金プランの変更イベント

顧客がGitHub Marketplaceの注文に対して以下のいずれかの変更を行うと、GitHubはmarketplace_purchase webhookをchangedアクション付きでアプリケーションに送信します。

  • より高価な価格プランへのアップグレードあるいは低価格なプランへのダウングレード
  • 既存のプランへのシートの追加あるいはシートの削除
  • 支払いサイクルの変更

GitHubは、変更が有効になるとwebhookを送信します。 たとえば、顧客がプランをダウングレードすると、その顧客の支払いサイクルの終了時点でwebhookを送信します。 顧客がプランをアップグレードした場合には、新しいサービスをすぐに利用できるようにするため、GitHubは即座にアプリケーションにwebhookを送信します。 顧客が支払いサイクルを月次から年次に切り替えた場合は、アップグレードと見なされます。 どういったアクションがアップグレードやダウングレードと見なされるかを詳しく学ぶには、「GitHub Marketplaceでの顧客への課金」を参照してください。

プランの開始日を更新し、顧客の支払いサイクルと価格プランを変更するために、marketplace_purchaseからeffective_datemarketplace_purchaseprevious_marketplace_purchaseを読み取ってください。 marketplace_purchaseイベントペイロードの例については「GitHub Marketplace webhookイベント」を参照してください。

アプリケーションが無料トライアルを提供しているなら、無料トライアルの有効期限が切れるとmarketplace_purchase webhookをchangedアクション付きで受け取ります。 顧客の無料トライアル期間が終了したら、その顧客を無料トライアルプランの有料バージョンにアップグレードしてください。

ステップ 2. 顧客アカウントの更新

顧客がGitHub Marketplaceの注文に対して行った支払いサイクルや価格プランの変更を反映させるために、顧客のアカウント情報を更新しなければなりません。 changedアクションwebhookを受信した際に、MarketplaceアプリケーションのWebサイトか、アプリケーションのUIに、価格プラン、seat_count(ユニット単位の価格プランの場合)、支払いサイクルのアップグレードを表示してください。

顧客がプランをダウングレードした場合には、顧客がプランの制限を超えているかをレビューし、UIで直接関わるか、電話やメールで連絡することをおすすめします。

アップグレードを促すために、アップグレードのURLをアプリケーションのUIに表示できます。 詳細については「アップグレード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と、GitHub Marketplace内で各プランに対してユニークなLISTING_PLAN_IDが与えられます。 プランをリストする際にはこれらの番号があり、リストの価格プランを特定できます。 LISTING_PLAN_IDと「プランに対するアカウントのリスト」エンドポイントを使って、CUSTOMER_ACCOUNT_IDを取得してください。

ノート: 顧客が追加ユニット(シートなど)のアップグレードをした場合でも、顧客に購入に対する適切なプランを送信することはできますが、その時点で弊社はunit_countパラメータをサポートできません。

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

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

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

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

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

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

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