SuperAPI AI 工具集

one-time-products

通用与其它

查看项目

更新于 10-16 07:58

技能介绍

该技能用于指导开发者在 Play Billing Library 9.x 下完成 Google Play 一次性商品集成,覆盖查询、启动购买、处理待处理状态及最终以 consume 或 acknowledge 收尾的完整生命周期。

用途:确认商品类型(可重复购买的消耗型或用一次的非消耗型);明确履约位置,推荐服务端校验加服务端 consume/acknowledge,客户端方式仅适合早期开发。

必要准备:先确认 PBL 版本(假设 9.x),一次性商品的待处理购买需通过 PendingPurchasesParams.newBuilder().enableOneTimeProducts() 传给 enablePendingPurchases()(自 PBL 8.0 起必需,无参重载已移除)。在 Play Console 的 Monetize > Products > In-app products 获取商品 ID、状态(须为 Active)、定价、可用性和税务类别,并准备后端校验端点与 RTDN 订阅。商品 ID 取名如 coins_100、remove_ads,避免 product_1,且删除后不可复用。

流程:用 queryProductDetailsAsync() 配合 ProductType.INAPP 查询;界面用 formattedPrice 展示;从 Activity 调用 launchBillingFlow();在 PurchasesUpdatedListener 中接收结果;按 purchaseState 分派 PURCHASED、PENDING、UNSPECIFIED_STATE;经服务端 Google Play Developer API 校验后授予权益;消耗型调用 consumePurchase(),非消耗型调用 acknowledgePurchase()(先检查 isAcknowledged,避免重复调用),并在 3 天内完成,越快越好;通过 queryPurchasesAsync() 在启动、重连和 onResume() 时捕捉遗漏购买。多数量读取 purchase.quantity;多 offer 时传 offerToken;用 setObfuscatedAccountId 等哈希标识,禁止原始用户 ID。

限制与注意:切勿对 PENDING 购买授予权益、消费或确认;不要跳过服务端校验;不要在界面硬编码价格;需处理 BillingClient 断连并检查 isReady。资料未提供具体价格、收费方式或效果数据。