资源: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 |
购买商品的时间,以自纪元(1970 年 1 月 1 日)以来的毫秒数表示。 |
purchaseState |
订单的购买状态。可能的值为:0 - 已购买 1. 已取消 2. 待处理 |
consumptionState |
应用内商品的消耗状态。可能的值为:0 - 尚未消耗 1. 已使用 |
developerPayload |
开发者指定的字符串,其中包含与订单相关的补充信息。 |
orderId |
与应用内商品购买交易相关联的订单 ID。 |
purchaseType |
应用内商品的购买类型。仅当相应购买不是按照标准应用内购结算流程完成时,才设置此字段。可能的值为:0 - 测试(即从许可测试账号购买)1. 促销(即使用促销代码购买)。不包括 Play 积分购买。2. 奖励(即通过观看视频广告而不是付费获取) |
acknowledgementState |
应用内商品的确认状态。可能的值为:0 - 尚未确认 1. 已确认 |
purchaseToken |
为标识相应购买而生成的购买令牌。可能不存在。 |
productId |
应用内商品的 SKU。可能不存在。 |
quantity |
与应用内商品购买相关的数量。如果不存在,则数量为 1。 |
obfuscatedExternalAccountId |
与您的应用中的用户账号唯一关联且经过混淆处理的 ID。仅当购买时使用 https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid 指定的情况下才存在。 |
obfuscatedExternalProfileId |
与您的应用中的用户个人资料唯一关联且经过混淆处理的 ID。仅当购买时使用 https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid 指定的情况下才存在。 |
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)是否正确。 |
409 |
concurrentUpdate |
尝试更新正在并发更新的对象。 | 使用指数退避算法重试请求。避免同时修改同一资源。 |
5xx |
Generic error |
Google Play 服务器中的一般错误。 | 请重试您的请求。 如果问题仍然存在,请与您的 Google Play 客户经理联系,或提交支持请求。不妨查看 Play 状态信息中心,了解是否存在任何已知的中断。 |