整體來說,您的應用程式必須應對的情境如下:
使用者會在 Cloud Marketplace 提出要求或做出變更,例如申請使用您的產品。
Cloud Marketplace 會透過 Pub/Sub 向您的應用程式傳送通知,其中的
eventType欄位含有要求相關資訊。舉例來說,如果使用者變更了自身的授權,eventType即為ENTITLEMENT_PLAN_CHANGED。如要查看
eventType的可能值完整清單,請參閱這篇文章。如要核准要求,您的應用程式會將
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 則是分配給您的合作夥伴 ID。
如要找出合作夥伴 ID,請按照下列步驟操作:
- 在 Producer Portal 中開啟產品。
- 前往「技術整合」部分。
- 在「供應商 ID」欄位中,合作夥伴 ID 是「供應商 ID」值。
Cloud Marketplace 會同時將使用者導向您的註冊頁面,以便在您的系統中建立帳戶。如要瞭解如何建立註冊頁面,請參閱「整合應用程式前端」。
核准使用者帳戶
使用者註冊成功後,應用程式必須呼叫 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 參考資料。