管理 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 状态,但是它们在 approvals 字段中有一个名为 signupPENDING 条目,表示用户尚未注册。要在用户注册后批准该账号,请使用以下 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 参考