SaaS アプリのバックエンドをプライベート オファーに統合する

このページでは、Producer Portal で利用可能な Private Offers バージョン 2 の SaaS プロダクトのバックエンドを統合する方法について説明します。

これらの手順は、VM プロダクトでは必要ありません。エンタイトルメントを使用して使用状況を追跡する方法について詳しくは、アプリのバックエンドの統合のドキュメントをご覧ください。

始める前に

  • プロダクトが Google Cloud Marketplace と統合され、Google Cloud Marketplace に登録されている必要があります。少なくとも 1 つの料金プランが公開されている必要があります。

  • Producer Portal にプロダクトをオンボーディングし、オファーに使用している料金プラン用のアプリのバックエンドを統合する必要があります。手順については、アプリのバックエンドの統合をご覧ください。

エンタイトルメントの管理

プライベート オファーを購入すると、Google はエンタイトルメントを作成します。これは、お客様が Google Cloud Marketplace からオファーを購入したことを示します。このセクションでは、Partner Procurement API を使用してプライベート オファーのエンタイトルメントを管理する方法について説明します。

プライベート オファーに Partner Procurement API を使用する方法の詳細については、リファレンス ドキュメントをご覧ください。

エンタイトルメントの承認または拒否

顧客がプライベート オファーを購入すると、Google Cloud Marketplace はエンタイトルメントを作成し、次の Pub/Sub メッセージをアプリに送信します。

{
  "eventId": "...",
  "eventType": "ENTITLEMENT_CREATION_REQUESTED",
  "entitlement": {
  "id": "ENTITLEMENT_ID",
  "updateTime": "...",

  },
}

ENTITLEMENT_ID は、Google Cloud Marketplace によって作成された ID です。

オファーを購入したことを反映するために、ユーザーのアカウントを更新します。次に、エンタイトルメントを承認するために、Partner Procurement API に対して HTTP POST リクエストを発行し、承認する ENTITLEMENT_ID を送信します。

POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:approve

エンタイトルメントを拒否するには、代わりに HTTP POST リクエストで reject メソッドを使用します。

POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:reject

有効なオファーを置き換える

プライベート オファーの設定に応じて、顧客がオファーを置き換えられる場合があります。顧客が新しいプライベート オファーを選択すると、次の形式の Pub/Sub メッセージが届きます。

{
  "eventId": "...",
  "eventType": "ENTITLEMENT_PLAN_CHANGE_REQUESTED",
  "entitlement": {
  "id": "ENTITLEMENT_ID",
  "newPlan": "ultimate",   // New plan for the offer,
  "newOffer": "OFFER2",    // New offer,
  "updateTime": "...",
  },
}

OFFER2 は代替オファーであり、ENTITLEMENT_ID は Google Cloud Marketplace によって作成された ID です。

オファーの置き換えを承認するには、Partner Procurement API に次の HTTP POST リクエストを行います。

POST v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID:approvePlanChange

リクエストの本文には、承認するオファーのプランが必要です。

{
  "pendingPlanName": PLAN_NAME
}

変更が承認されると、変更が有効になったときに別の Pub/Sub メッセージが届きます。メッセージの eventType フィールドが ENTITLEMENT_PLAN_CHANGED に変わります。プランのステータスを確認するには、Partner Procurement API に次の HTTP GET リクエストを行います。

GET v1/providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID

レスポンスは次のようになります。state 項目には、新しいオファーがアクティブかどうか、オファーの変更がまだ保留中であるかどうかが示されます。

{
  "name": "providers/YOUR_PARTNER_ID/entitlements/ENTITLEMENT_ID",
  "provider": "YOUR_PARTNER_ID",
  "account": "USER_ACCOUNT_ID",
  "product": "example-server",
  "Offer":   "OFFER1",
  "plan": "pro",
  "state": "ENTITLEMENT_PENDING_PLAN_CHANGE",
  "newPendingOffer": "OFFER2",
  "newPendingPlan": "ultimate",
  ...
}

その他のエンタイトルメント タスクを完了する

その他の利用資格に関するタスクについては、Google Cloud Marketplace の公開ドキュメントをご覧ください。

プライベート オファー アカウントのタスクのイベントタイプのリスト

次の表に、プライベート オファー用に Pub/Sub メッセージでアプリが受信する eventType を示します。

全一覧については、アカウント タスクのイベントタイプのリストをご覧ください。

eventType Description
ENTITLEMENT_OFFER_ENDED 顧客のプライベート オファーが終了したことを示します。オファーは ENTITLEMENT_CANCELLED イベントをトリガーするか、割引のない価格でアクティブなままです。