プライベート オファーのエンタイトルメントを管理する

顧客がプライベート オファーを購入すると、Google はエンタイトルメントを作成します。エンタイトルメントは、顧客が Cloud Marketplace からオファーを購入したことを示します

この記事では、Partner Procurement API を使用してプライベート オファーのエンタイトルメントを管理する方法について再確認します。

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

エンタイトルメントの承認

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

{
  "eventId": "...",
  "eventType": "ENTITLEMENT_CREATION_REQUESTED",
  "entitlement": {
  "id": "ENTITLEMENT_ID",
  "updateTime": "...",
  "newOfferDuration": "P1Y6M", // Contract duration for the offer
  "newOfferEndTime": "", // Ending time for the offer
  },
}

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

期間を指定してオファーが作成された場合、メッセージには年と月ごとの期間が表示され、newOfferEndTime フィールドは空になります。指定した終了時刻でオファーが作成された場合、メッセージにはオファーの終了時刻が表示され、newOfferDuration フィールドは空になります。

オファーを購入したことを反映するために、ユーザーのアカウントを更新します。次に、エンタイトルメントを承認するために、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 は 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/PARTNER_ID/entitlements/ENTITLEMENT_ID",
  "provider": "PARTNER_ID",
  "account": "USER_ACCOUNT_ID",
  "product": "example-server",
  "Offer":   "OFFER1",
  "plan": "pro",
  "state": "ENTITLEMENT_PENDING_PLAN_CHANGE",
  "newPendingOffer": "OFFER2",
  "newPendingPlan": "ultimate",
  "newOfferDuration": "P2Y",
  "newOfferEndTime": "",
  ...
}

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

プライベート オファーに固有ではないその他のエンタイトルメントに関するタスクについては、Cloud Marketplace の公開ドキュメントをご覧ください。

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

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

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

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

次のステップ