概括来讲,您的应用必须应对以下情景:
用户在 Cloud Marketplace 中发出请求或进行更改,例如注册您的产品。
Cloud Marketplace 通过 Pub/Sub 向您的应用发送通知,其中的
eventType
中包含有关请求的信息。例如,如果用户更改其权益,则eventType
为ENTITLEMENT_PLAN_CHANGED
。请参阅可用的
eventType
的完整列表。为了批准该请求,您的应用会向 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
字段中有一个名为 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 参考。