- Resource: ProductPurchaseV2
- PurchaseStateContext
- PurchaseState
- TestPurchaseContext
- FopType
- ProductLineItem
- ProductOfferDetails
- RentOfferDetails
- ConsumptionState
- AcknowledgementState
- 方法
資源:ProductPurchaseV2
ProductPurchaseV2 資源會指出使用者應用程式內商品購買交易的狀態。
| JSON 表示法 |
|---|
{ "productLineItem": [ { object ( |
| 欄位 | |
|---|---|
productLineItem[] |
包含 ProductPurchaseV2 的商品層級資訊。 |
kind |
這類代表 androidpublisher 服務中的 ProductPurchaseV2 物件。 |
purchaseStateContext |
購買交易的購買狀態相關資訊。 |
testPurchaseContext |
測試購買交易的相關資訊。這項設定只會用於測試購買交易。 |
orderId |
與應用程式內商品購買交易相關聯的訂單 ID。如果購買交易沒有相關聯的訂單,則可能不會設定這項屬性。 |
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 帳單地區代碼。 |
purchaseCompletionTime |
購買交易成功的時間,也就是 PurchaseState 變更為 PURCHASED 的時間。付款完成後,系統才會顯示這個欄位。舉例來說,如果使用者發起了待處理交易 (https://developer.android.com/google/play/billing/integrate#pending),這個欄位會等到使用者成功完成交易所需的步驟後,才會填入資料。 使用 RFC 3339,產生的輸出內容一律會經過 Z 正規化,並使用 0、3、6 或 9 個小數位數,也接受「Z」以外的偏移量。範例: |
acknowledgementState |
僅供輸出。購買交易的確認狀態。 |
PurchaseStateContext
購買狀態的相關情境。
| JSON 表示法 |
|---|
{
"purchaseState": enum ( |
| 欄位 | |
|---|---|
purchaseState |
僅供輸出。購買交易的購買狀態。 |
PurchaseState
可能的購買狀態。
| 列舉 | |
|---|---|
PURCHASE_STATE_UNSPECIFIED |
未指定購買交易狀態。這個值絕不應設定。 |
PURCHASED |
購買成功。 |
CANCELLED |
已取消訂單 |
PENDING |
購買交易處於待處理狀態,尚未完成。如要進一步瞭解如何處理未完成的購買交易,請參閱 https://developer.android.com/google/play/billing/integrate#pending。 |
TestPurchaseContext
測試購買交易的背景資訊。
| JSON 表示法 |
|---|
{
"fopType": enum ( |
| 欄位 | |
|---|---|
fopType |
測試購買交易的付款方式類型。 |
FopType
可能的 fop 類型。
| 列舉 | |
|---|---|
FOP_TYPE_UNSPECIFIED |
未指定 FOP 類型。這個值絕不應設定。 |
TEST |
使用測試卡完成交易。 |
ProductLineItem
包含 ProductPurchaseV2 的商品層級資訊。
| JSON 表示法 |
|---|
{
"productId": string,
"productOfferDetails": {
object ( |
| 欄位 | |
|---|---|
productId |
所購買產品的 ID (例如「monthly001」)。 |
productOfferDetails |
這項商品的優惠詳細資料。 |
ProductOfferDetails
與購買項目相關的優惠詳細資料資訊。
| JSON 表示法 |
|---|
{ "offerTags": [ string ], "offerId": string, "purchaseOptionId": string, "rentOfferDetails": { object ( |
| 欄位 | |
|---|---|
offerTags[] |
與優惠相關聯的最新優惠標記。包括從購買選項繼承的標記。 |
offerId |
優惠 ID。僅適用於優惠。 |
purchaseOptionId |
購買選項 ID。 |
rentOfferDetails |
租賃優惠的詳細資料。這項設定僅適用於租賃委刊項。 |
offerToken |
用來購買這個購買交易項目的每筆交易優惠憑證。 |
quantity |
與應用程式內商品購買交易相關聯的數量。 |
refundableQuantity |
符合退款資格的數量,也就是尚未退款的數量。這項值會反映以數量為準的部分退款和全額退款。 |
consumptionState |
僅供輸出。購買交易的消費狀態。 |
RentOfferDetails
這個類型沒有任何欄位。
與租賃委刊項相關的方案詳細資料。
ConsumptionState
可能的消耗狀態。
| 列舉 | |
|---|---|
CONSUMPTION_STATE_UNSPECIFIED |
未指定消耗狀態。這個值絕不應設定。 |
CONSUMPTION_STATE_YET_TO_BE_CONSUMED |
尚未使用。 |
CONSUMPTION_STATE_CONSUMED |
已兌換。 |
AcknowledgementState
一次性產品的確認狀態。
| 列舉 | |
|---|---|
ACKNOWLEDGEMENT_STATE_UNSPECIFIED |
未指定確認狀態。 |
ACKNOWLEDGEMENT_STATE_PENDING |
尚未確認購買交易。 |
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED |
已確認購買交易。 |
方法 |
|
|---|---|
|
檢查應用程式內商品的購買和使用狀態。 |
錯誤代碼
這項資源的作業會傳回下列 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 狀態資訊主頁,瞭解是否有已知服務中斷情形。 |