- Recurso: ProductPurchaseV2
- PurchaseStateContext
- PurchaseState
- TestPurchaseContext
- FopType
- ProductLineItem
- ProductOfferDetails
- RentOfferDetails
- ConsumptionState
- AcknowledgementState
- Métodos
Recurso: ProductPurchaseV2
Um recurso ProductPurchaseV2 indica o status da compra de um produto no app feita por um usuário.
| Representação JSON |
|---|
{ "productLineItem": [ { object ( |
| Campos | |
|---|---|
productLineItem[] |
Contém informações no nível do item para um ProductPurchaseV2. |
kind |
Este tipo representa um objeto ProductPurchaseV2 no serviço androidpublisher. |
purchaseStateContext |
Informações sobre o estado da compra. |
testPurchaseContext |
Informações relacionadas a compras de teste. Isso só será definido para compras de teste. |
orderId |
O ID do pedido associado à compra do produto no app. Não pode ser definido se não houver um pedido associado à compra. |
obfuscatedExternalAccountId |
Uma versão ofuscada do ID que é exclusivamente associado à conta do usuário no seu app. Presente apenas se especificada usando https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid quando a compra foi feita. |
obfuscatedExternalProfileId |
Uma versão ofuscada do ID que é exclusivamente associado ao perfil do usuário no seu app. Presente apenas se especificada usando https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid quando a compra foi feita. |
regionCode |
Código regional de faturamento do usuário no momento em que o produto foi concedido, no formato ISO 3166-1 alpha-2. |
purchaseCompletionTime |
O momento em que a compra foi concluída, ou seja, quando o PurchaseState mudou para PURCHASED. Esse campo não vai aparecer até que o pagamento seja concluído. Por exemplo, se o usuário iniciou uma transação pendente (https://developer.android.com/google/play/billing/integrate#pending), esse campo não será preenchido até que o usuário conclua as etapas necessárias para concluir a transação. Usa o padrão RFC 3339, em que a saída gerada é sempre convertida em Z e tem 0, 3, 6 ou 9 dígitos fracionários. Além de "Z", outros ajustes também são aceitos. Exemplos: |
acknowledgementState |
Apenas saída. O estado de confirmação da compra. |
PurchaseStateContext
Contexto sobre o estado da compra.
| Representação JSON |
|---|
{
"purchaseState": enum ( |
| Campos | |
|---|---|
purchaseState |
Apenas saída. O estado da compra. |
PurchaseState
Estados de compra possíveis.
| Tipos enumerados | |
|---|---|
PURCHASE_STATE_UNSPECIFIED |
Estado da compra não especificado. Esse valor nunca pode ser definido. |
PURCHASED |
Compra concluída. |
CANCELLED |
Compra cancelada. |
PENDING |
A compra está pendente e ainda não foi concluída. Para mais informações sobre como processar compras pendentes, consulte https://developer.android.com/google/play/billing/integrate#pending. |
TestPurchaseContext
Contexto sobre uma compra de teste.
| Representação JSON |
|---|
{
"fopType": enum ( |
| Campos | |
|---|---|
fopType |
O tipo de FOP da compra de teste. |
FopType
Possíveis tipos de FOP.
| Tipos enumerados | |
|---|---|
FOP_TYPE_UNSPECIFIED |
Tipo de FOP não especificado. Esse valor nunca pode ser definido. |
TEST |
A compra foi feita com um cartão de teste. |
ProductLineItem
Contém informações no nível do item para um ProductPurchaseV2.
| Representação JSON |
|---|
{
"productId": string,
"productOfferDetails": {
object ( |
| Campos | |
|---|---|
productId |
O ID do produto comprado (por exemplo, "monthly001"). |
productOfferDetails |
Os detalhes da oferta para esse item. |
ProductOfferDetails
Informações sobre detalhes de ofertas relacionadas a um item de linha de compra.
| Representação JSON |
|---|
{ "offerTags": [ string ], "offerId": string, "purchaseOptionId": string, "rentOfferDetails": { object ( |
| Campos | |
|---|---|
offerTags[] |
As últimas tags associadas à oferta. Inclui tags herdadas da opção de compra. |
offerId |
O ID da oferta. Presente apenas em ofertas. |
purchaseOptionId |
O ID da opção de compra. |
rentOfferDetails |
Oferece detalhes sobre ofertas de aluguel. Isso só será definido para itens de linha de aluguel. |
offerToken |
O token de oferta por transação usado para fazer este item de linha de compra. |
quantity |
A quantidade associada à compra do produto no app. |
refundableQuantity |
A quantidade qualificada para reembolso, ou seja, a quantidade que não foi reembolsada. O valor reflete reembolsos parciais e totais com base em quantidade. |
consumptionState |
Apenas saída. O estado de consumo da compra. |
RentOfferDetails
Esse tipo não tem campos.
Informações sobre detalhes de ofertas relacionadas a um item de linha de locação.
ConsumptionState
Possíveis estados de consumo.
| Tipos enumerados | |
|---|---|
CONSUMPTION_STATE_UNSPECIFIED |
Estado de consumo não especificado. Esse valor nunca pode ser definido. |
CONSUMPTION_STATE_YET_TO_BE_CONSUMED |
Ainda não foi consumido. |
CONSUMPTION_STATE_CONSUMED |
Já consumido. |
AcknowledgementState
Estado de confirmação do produto único.
| Tipos enumerados | |
|---|---|
ACKNOWLEDGEMENT_STATE_UNSPECIFIED |
Estado de confirmação não especificado. |
ACKNOWLEDGEMENT_STATE_PENDING |
A compra ainda não foi confirmada. |
ACKNOWLEDGEMENT_STATE_ACKNOWLEDGED |
A compra é confirmada. |
Métodos |
|
|---|---|
|
Verifica o status de compra e consumo de um item no app. |
Códigos de erro
As operações desse recurso retornam os seguintes códigos de erro HTTP:
| Código do erro | Motivo | Descrição | Resolução |
|---|---|---|---|
400 |
invalidPurchaseState |
A compra não está em um estado válido para realizar a operação solicitada. Por exemplo, você pode estar tentando confirmar uma compra já consumida ou cancelar uma assinatura inativa. | Verifique o estado atual do recurso usando a API Get correspondente antes de tentar a operação. Verifique se o recurso está em um estado adequado para a ação. |
400 |
invalidValue |
Um valor inválido foi fornecido na solicitação. Geralmente, isso é retornado para um token de compra malformado ou inválido. | Corrija o valor do campo inválido no corpo ou nos parâmetros da solicitação com base na referência da API. |
400 |
productNotOwnedByUser |
O token de compra fornecido é válido, mas o usuário não tem o produto. Isso pode acontecer se a compra for reembolsada, revogada ou expirar antes da confirmação. | Verifique o estado atual do recurso usando a API Get correspondente antes de tentar a operação. Verifique se o recurso está em um estado adequado para a ação. |
400 |
purchaseTokenMismatch |
O token de compra fornecido não corresponde à compra, ao nome do pacote, ao ID da assinatura ou ao ID do produto. | Verifique se todos os detalhes na solicitação estão corretos e correspondem entre si. |
400 |
required |
Um campo ou parâmetro obrigatório está faltando na solicitação. | Consulte a documentação da API para garantir que todos os campos e parâmetros obrigatórios estejam incluídos. |
400 |
unsupportedIabType |
A operação não é compatível com o tipo de faturamento em app especificado. | Verifique se o método da API é compatível com o tipo de item que está sendo gerenciado. |
403 |
userInsufficientPermission |
O usuário não tem permissão suficiente para realizar a operação solicitada. | Confira se o usuário autenticado tem as permissões necessárias no Google Play Console. Consulte Como usar uma conta de serviço para mais detalhes. |
404 |
notFound |
Não foi possível encontrar o recurso solicitado. | Verifique se os identificadores (por exemplo, token de compra, nome do pacote, ID do produto, ID da assinatura) estão corretos. |
409 |
concurrentUpdate |
Houve uma tentativa de atualizar um objeto que está sendo atualizado simultaneamente. | Tente de novo com uma espera exponencial. Evite modificações simultâneas no mesmo recurso. |
5xx |
Generic error |
Erro genérico no servidor do Google Play. | Tente fazer a solicitação novamente. Se o problema persistir, entre em contato com seu gerente de contas do Google Play ou envie uma solicitação de suporte. Confira o Painel de status do Google Play para saber se há falhas conhecidas. |