SaaS 제품의 사용자 계정 관리

앱에서 대략적으로 다음과 같은 시나리오를 처리해야 합니다.

  1. 사용자가 Cloud Marketplace에서 제품 등록과 같은 요청 또는 변경을 수행합니다.

  2. Cloud Marketplace는 Pub/Sub를 통해 eventType 필드의 요청 정보가 포함된 알림을 앱에 보냅니다. 예를 들어 사용자가 자격을 변경하면 eventTypeENTITLEMENT_PLAN_CHANGED가 됩니다.

    가능한 eventType의 전체 목록을 참조하세요.

  3. 요청을 승인하기 위해 앱은 Partner Procurement API에 HTTP POST 요청을 보냅니다.

다음 섹션에서는 사용자가 수행할 수 있는 요청 유형 및 앱이 요청을 처리하기 위해 수행해야 하는 작업을 설명합니다.

이 섹션에 설명된 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 상태로 작성되지만 signup라고 부르는 approvals 필드에 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 참조를 참조하세요.