概括来讲,您的应用必须应对以下情景:
用户在 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 是分配给您的合作伙伴 ID。
如需查找您的合作伙伴 ID,请执行以下操作:
- 在 Producer Portal 中,打开您的商品。
- 前往技术集成部分。
- 在提供方标识符字段中,您的合作伙伴 ID 即为提供方 ID 值。
同时,Cloud Marketplace 会将用户定向到您的注册页面,并通过该页面在您的系统中创建账号。如需了解如何创建注册页面,请参阅集成应用的前端。
批准用户账号
在用户成功注册后,您的应用必须调用 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 参考。