資源:ProductPurchase
ProductPurchase 資源會指出使用者應用程式內商品購買交易的狀態。
| JSON 表示法 |
|---|
{ "kind": string, "purchaseTimeMillis": string, "purchaseState": integer, "consumptionState": integer, "developerPayload": string, "orderId": string, "purchaseType": integer, "acknowledgementState": integer, "purchaseToken": string, "productId": string, "quantity": integer, "obfuscatedExternalAccountId": string, "obfuscatedExternalProfileId": string, "regionCode": string, "refundableQuantity": integer } |
| 欄位 | |
|---|---|
kind |
這類代表 androidpublisher 服務中的 inappPurchase 物件。 |
purchaseTimeMillis |
產品的購買時間,以自 Epoch 紀元時間 (1970 年 1 月 1 日) 起的毫秒為單位。 |
purchaseState |
訂購單的購買狀態。可能的值為 0。已購買 1 個。已取消 2. 待處理 |
consumptionState |
應用程式內商品的消耗狀態。可能的值為 0。尚未使用的抵免額 1. 使用 |
developerPayload |
開發人員指定的字串,內容為有關訂購單的其他資訊。 |
orderId |
與應用程式內商品購買交易相關聯的訂單 ID。 |
purchaseType |
應用程式內商品的購買類型。只有在購買交易不是透過標準應用程式內結帳流程完成時,才會設定這個欄位。可能的值為 0。測試 (即透過授權測試帳戶購買) 1. 促銷 (即使用促銷代碼購買)。不含 Play Points 交易。2. 獎勵 (即觀看影片廣告而非付費) |
acknowledgementState |
應用程式內商品的確認狀態。可能的值為 0。尚待確認 1. 已確認 |
purchaseToken |
系統產生的購買交易權杖,用於識別這筆交易。可能不會顯示。 |
productId |
應用程式內商品 SKU。可能不會顯示。 |
quantity |
與應用程式內商品購買交易相關聯的數量。如未提供,數量則為 1。 |
obfuscatedExternalAccountId |
與應用程式中使用者帳戶相關聯的專屬 ID 模糊處理版本。只有在購買交易時使用 https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid 指定時,才會顯示這個 ID。 |
obfuscatedExternalProfileId |
與應用程式中使用者設定檔相關聯的專屬 ID 模糊處理版本。只有在購買時使用 https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid 指定時,才會顯示這個 ID。 |
regionCode |
產品授予時,使用者的 ISO 3166-1 alpha-2 帳單地區代碼。 |
refundableQuantity |
符合退款資格的數量,也就是尚未退款的數量。這項值會反映以數量為準的部分退款和全額退款。 |
方法 |
|
|---|---|
|
確認購買應用程式內商品。 |
|
消耗應用程式內商品的購買交易。 |
|
檢查應用程式內商品的購買和使用狀態。 |
錯誤代碼
這項資源的作業會傳回下列 HTTP 錯誤碼:
| 錯誤代碼 | 原因 | 說明 | 解析度 |
|---|---|---|---|
400 |
invalidPurchaseState |
購買交易處於無效狀態,無法執行要求的作業。舉例來說,您可能嘗試確認已使用的購買交易,或取消非有效訂閱項目。 | 嘗試執行作業前,請先使用對應的 Get API 檢查資源的目前狀態。確認資源處於適合執行動作的狀態。 |
400 |
invalidValue |
要求中提供的值無效。如果購買權杖格式有誤或無效,通常會傳回這個錯誤。 | 根據 API 參考資料,更正要求主體或參數中的無效欄位值。 |
400 |
productNotOwnedByUser |
提供的購買權杖有效,但使用者目前並未擁有該產品。如果購買交易在確認前已退款、撤銷或過期,就可能發生這種情況。 | 嘗試執行作業前,請先使用對應的 Get API 檢查資源的目前狀態。確認資源處於適合執行動作的狀態。 |
400 |
purchaseTokenMismatch |
提供的購買憑證與購買交易、套件名稱、訂閱 ID 或產品 ID 不符。 | 確認要求中的所有詳細資料皆正確無誤,且彼此相符。 |
400 |
required |
要求缺少必要欄位或參數。 | 請參閱 API 說明文件,確認已包含所有必填欄位和參數。 |
400 |
unsupportedIabType |
指定的應用程式內結帳類型不支援這項作業。 | 確認 API 方法與要管理的項目類型相容。 |
403 |
userInsufficientPermission |
使用者沒有足夠的權限可執行要求作業。 | 確認已驗證的使用者在 Google Play 管理中心具備必要權限。詳情請參閱「 使用服務帳戶」。 |
404 |
notFound |
找不到要求的資源。 | 確認 ID (例如購買憑證、套件名稱、產品 ID、訂閱 ID) 正確無誤。 |
409 |
concurrentUpdate |
嘗試更新正在同步更新的物件。 | 以指數輪詢方式重試要求。避免同時修改相同資源。 |
5xx |
Generic error |
Google Play 伺服器發生一般錯誤。 | 請重試要求。 如果問題持續發生,請與 Google Play 帳戶管理員聯絡,或提交支援要求。建議查看 Play 狀態資訊主頁,瞭解是否有已知服務中斷情形。 |