SaaS プロダクトのユーザー アカウントを管理する

大まかには、アプリでは次のシナリオを処理する必要があります。

  1. ユーザーが、プロダクトへの登録など、Cloud Marketplace でリクエストまたは変更を行います。

  2. Cloud Marketplace は、eventType フィールドにリクエストに関する情報を含む通知を Pub/Sub を介してアプリに送信します。たとえば、ユーザーがエンタイトルメントを変更した場合、eventTypeENTITLEMENT_PLAN_CHANGED になります。

    使用可能な eventType の完全なリストをご覧ください。

  3. リクエストを承認するために、アプリは HTTP POST リクエストを Partner Procurement API に送信します。

以下のセクションでは、ユーザーが行うことができるリクエストのタイプと、アプリがリクエストを処理するために必要な処理について説明します。

このセクションで説明する API 呼び出しでは、次のエンドポイントを使用します。

https://cloudcommerceprocurement.googleapis.com/

始める前に

  • アプリを統合するの説明に従って、Cloud Commerce Partner Procurement API へのアクセスを設定します。

新規ユーザーのアカウントを作成する

ユーザーが初めてプロダクトを購入する場合、Cloud Marketplace はユーザーとの関係を追跡するアカウント リソースを作成します。アカウント リソースが作成されると、作成された Pub/Sub トピックを介して通知されます。Pub/Sub メッセージは次の形式です。

{
  "eventId": "...",
  "providerId": "YOUR_PARTNER_ID",
  "account": {
    "id": "USER_ACCOUNT_ID",
    "updateTime": "..."
  }
}

USER_ACCOUNT_ID は Cloud Marketplace によって作成されたアカウント ID、YOUR_PARTNER_ID はパートナー エンジニアが Partner Procurement API へのアクセスを有効にしたときに割り当てられた ID です。

同時に、ユーザーは登録ページに誘導され、そこでシステムにアカウントを作成します。登録ページの作成については、アプリのフロントエンドの統合をご覧ください。

ユーザーのアカウントを承認する

ユーザーの登録が正常に完了したら、アプリは Partner Procurement API を呼び出して、アカウントが承認されたことを示す必要があります。アカウントは ACCOUNT_ACTIVE という状態で作成されますが、approvals フィールドに signup という PENDING エントリが表示されます。これは、ユーザーがまだ登録されていないことを示します。ユーザーが登録された後にアカウントを承認するには、次の HTTP POST リクエストを使用します。

POST v1/providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID:approve {'approvalName': 'signup'}

ユーザーのアカウントのステータスを確認する

リンクされたアカウントのステータスを確認するには、次の HTTP GET リクエストを使用します。

GET v1/providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID

レスポンスの形式は次のとおりです。

{
  "name": "providers/YOUR_PARTNER_ID/accounts/USER_ACCOUNT_ID",
  "provider": "acme-services",
  "state": "ACCOUNT_ACTIVE",
  "approvals": [{
    "name": "signup",
    "state": "APPROVED",
    "updateTime": "...",
  }],
  "updateTime": "...",
  "createTime": "..."
}

使用可能なアカウントの状態のリストについては、providers.accounts API リファレンスをご覧ください。