REST Resource: purchases.productsv2

Recurso: ProductPurchaseV2

Un recurso ProductPurchaseV2 indica el estado de la compra que hace un usuario de un producto integrado en la aplicación.

Representación JSON
{
  "productLineItem": [
    {
      object (ProductLineItem)
    }
  ],
  "kind": string,
  "purchaseStateContext": {
    object (PurchaseStateContext)
  },
  "testPurchaseContext": {
    object (TestPurchaseContext)
  },
  "orderId": string,
  "obfuscatedExternalAccountId": string,
  "obfuscatedExternalProfileId": string,
  "regionCode": string,
  "purchaseCompletionTime": string,
  "acknowledgementState": enum (AcknowledgementState)
}
Campos
productLineItem[]

object (ProductLineItem)

Contiene información a nivel del elemento para un ProductPurchaseV2.

kind

string

Este tipo representa un objeto ProductPurchaseV2 en el servicio androidpublisher.

purchaseStateContext

object (PurchaseStateContext)

Es información sobre el estado de compra de la compra.

testPurchaseContext

object (TestPurchaseContext)

Es información relacionada con las compras de prueba. Este parámetro solo se establecerá para las compras de prueba.

orderId

string

Es el ID de pedido asociado con la compra del producto integrado en la aplicación. No se puede configurar si no hay un pedido asociado con la compra.

obfuscatedExternalAccountId

string

Es una versión ofuscada del ID que está asociado de forma única a la cuenta del usuario en tu app. Solo está presente si se especificó con https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid cuando se realizó la compra.

obfuscatedExternalProfileId

string

Es una versión ofuscada del ID que está asociado de forma única al perfil del usuario en tu app. Solo está presente si se especificó con https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid cuando se realizó la compra.

regionCode

string

Es el código regional de facturación (según ISO 3166-1 Alpha-2) del usuario en el momento en que se otorgó el producto.

purchaseCompletionTime

string (Timestamp format)

Fecha y hora en que se realizó la compra correctamente, es decir, cuando PurchaseState cambió a PURCHASED. Este campo no estará presente hasta que se complete el pago. Por ejemplo, si el usuario inició una transacción pendiente (https://developer.android.com/google/play/billing/integrate#pending), este campo no se completará hasta que el usuario complete correctamente los pasos necesarios para finalizar la transacción.

Usa el formato RFC 3339, en el que el resultado generado siempre estará normalizada a Z y usa 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan otras compensaciones que no sean “Z”. Ejemplos: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" o "2014-10-02T15:01:23+05:30".

acknowledgementState

enum (AcknowledgementState)

Solo salida. Es el estado de procesamiento de compra.

PurchaseStateContext

Es el contexto sobre el estado de la compra.

Representación JSON
{
  "purchaseState": enum (PurchaseState)
}
Campos
purchaseState

enum (PurchaseState)

Solo salida. Es el estado de compra de la compra.

PurchaseState

Son los estados de compra posibles.

Enums
PURCHASE_STATE_UNSPECIFIED No se especificó el estado de la compra. Nunca se debe establecer este valor.
PURCHASED Se compró correctamente.
CANCELLED Compra cancelada.
PENDING La compra está en estado pendiente y aún no se completó. Si quieres obtener más información para controlar las compras pendientes, consulta https://developer.android.com/google/play/billing/integrate#pending.

TestPurchaseContext

Es el contexto sobre una compra de prueba.

Representación JSON
{
  "fopType": enum (FopType)
}
Campos
fopType

enum (FopType)

Es el tipo de FOP de la compra de prueba.

FopType

Son los tipos de FOP posibles.

Enums
FOP_TYPE_UNSPECIFIED No se especificó el tipo de FOP. Nunca se debe establecer este valor.
TEST La compra se realizó con una tarjeta de prueba.

ProductLineItem

Contiene información a nivel del elemento para un ProductPurchaseV2.

Representación JSON
{
  "productId": string,
  "productOfferDetails": {
    object (ProductOfferDetails)
  }
}
Campos
productId

string

Es el ID del producto comprado (por ejemplo, "monthly001").

productOfferDetails

object (ProductOfferDetails)

Son los detalles de la oferta para este elemento.

ProductOfferDetails

Es información detallada de una oferta relacionada con un concepto de la compra.

Representación JSON
{
  "offerTags": [
    string
  ],
  "offerId": string,
  "purchaseOptionId": string,
  "rentOfferDetails": {
    object (RentOfferDetails)
  },
  "offerToken": string,
  "quantity": integer,
  "refundableQuantity": integer,
  "consumptionState": enum (ConsumptionState)
}
Campos
offerTags[]

string

Son las etiquetas de oferta más recientes asociadas con la oferta. Incluye etiquetas heredadas de la opción de compra.

offerId

string

Es el ID de la oferta. Solo está presente para las ofertas.

purchaseOptionId

string

Es el ID de la opción de compra.

rentOfferDetails

object (RentOfferDetails)

Son los detalles de las ofertas de alquiler. Este parámetro solo se establecerá para las líneas de pedido de alquiler.

offerToken

string

Es el token de oferta por transacción que se usó para crear esta línea de pedido de compra.

quantity

integer

Es la cantidad asociada con la compra del producto integrado en la aplicación.

refundableQuantity

integer

Es la cantidad apta para reembolso, es decir, la cantidad que no se reembolsó. El valor refleja reembolsos parciales basados en cantidades y reembolsos totales.

consumptionState

enum (ConsumptionState)

Solo salida. Es el estado de consumo de la compra.

RentOfferDetails

Este tipo no tiene campos.

Es información detallada de una oferta relacionada con un concepto de alquiler.

ConsumptionState

Son los estados de consumo posibles.

Enums
CONSUMPTION_STATE_UNSPECIFIED No se especificó el estado de consumo. Nunca se debe establecer este valor.
CONSUMPTION_STATE_YET_TO_BE_CONSUMED Aún no se consumió.
CONSUMPTION_STATE_CONSUMED Ya se consumió.

AcknowledgementState

Es el estado de procesamiento de compra del producto único.

Enums
ACKNOWLEDGEMENT_STATE_UNSPECIFIED No se especificó el estado de la confirmación.
ACKNOWLEDGEMENT_STATE_PENDING Aún no se procesó la compra.
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED Se procesó la compra.

Métodos

getproductpurchasev2

Verifica el estado del consumo y la compra de un elemento integrado en la app.

Códigos de error

Las operaciones de este recurso devuelven los siguientes códigos de error HTTP:

Código de error Motivo Solución
5xx Error genérico en el servidor de Google Play. Vuelve a intentar enviar tu solicitud.

Si el problema persiste, comunícate con tu administrador de cuentas de Google Play o envía una solicitud de asistencia. Considera consultar el Panel de estado de Play para ver si hay interrupciones conocidas.

409 Se produjo un error de actualización de simultaneidad.

Se intentó actualizar un objeto que ya se estaba actualizando. Por ejemplo, una compra se confirma llamando al método acknowledgePurchase() de la Biblioteca de Facturación Play y llamando al purchases.products.acknowledge de la API de Play Developer al mismo tiempo.

Vuelve a intentar enviar tu solicitud.