REST Resource: purchases.products

资源: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

string

此字段表示 androidpublisher 服务中 inappPurchase 对象的类型。

purchaseTimeMillis

string (int64 format)

购买商品的时间,以自纪元(1970 年 1 月 1 日)以来的毫秒数表示。

purchaseState

integer

订单的购买状态。可能的值为:0 - 已购买 1. 已取消 2. 待处理

consumptionState

integer

应用内商品的消耗状态。可能的值为:0 - 尚未消耗 1. 已使用

developerPayload

string

开发者指定的字符串,其中包含与订单相关的补充信息。

orderId

string

与应用内商品购买交易相关联的订单 ID。

purchaseType

integer

应用内商品的购买类型。仅当相应购买不是按照标准应用内购结算流程完成时,才设置此字段。可能的值为:0 - 测试(即从许可测试账号购买)1. 促销(即使用促销代码购买)。不包括 Play 积分购买。2. 奖励(即通过观看视频广告而不是付费获取)

acknowledgementState

integer

应用内商品的确认状态。可能的值为:0 - 尚未确认 1. 已确认

purchaseToken

string

为标识相应购买而生成的购买令牌。可能不存在。

productId

string

应用内商品的 SKU。可能不存在。

quantity

integer

与应用内商品购买相关的数量。如果不存在,则数量为 1。

obfuscatedExternalAccountId

string

与您的应用中的用户账号唯一关联且经过混淆处理的 ID。仅当购买时使用 https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid 指定的情况下才存在。

obfuscatedExternalProfileId

string

与您的应用中的用户个人资料唯一关联且经过混淆处理的 ID。仅当购买时使用 https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid 指定的情况下才存在。

regionCode

string

授予商品使用权时用户账单邮寄地址所在地区的代码,采用 ISO 3166-1 alpha-2 格式。

refundableQuantity

integer

符合退款条件的数量,即尚未退款的数量。该值反映基于数量的部分退款和全额退款。

方法

acknowledge

确认购买应用内商品。

consume

消耗所购买的应用内商品。

get

检查应用内商品的购买和消耗状态。

错误代码

此资源的操作会返回以下 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)是否正确。
409 concurrentUpdate 尝试更新正在并发更新的对象。 使用指数退避算法重试请求。避免同时修改同一资源。
5xx Generic error Google Play 服务器中的一般错误。 请重试您的请求。

如果问题仍然存在,请与您的 Google Play 客户经理联系,或提交支持请求。不妨查看 Play 状态信息中心,了解是否存在任何已知的中断。