プライベート オファーの 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": "...",
  "newOfferDuration": "P1Y6M", // Contract duration for the offer

  },
}

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": "...",
  "newOfferDuration": "P2Y",   // Contract duration for the new offer
  },
}

ここで、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",
  "newOfferDuration": "P2Y",
  ...
}

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

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

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

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

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

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