前言
IAP(In-App Purchase)是 HarmonyOS 的应用内支付能力。在「猫猫大作战」中,IAP 用于购买去广告、主题皮肤、金币礼包等数字商品。
一、IAP 基础
import { IAP } from '@kit.IAPKit'; async function purchaseRemoveAds(): Promise<void> { try { const result = await IAP.purchase({ productId: 'remove_ads', productType: IAP.ProductType.CONSUMABLE, }); if (result.resultCode === 0) { AppStorage.setOrCreate('adsRemoved', true); console.info('去广告购买成功'); } } catch (err) { console.error(`购买失败: ${err.message}`); } }二、商品类型
| 类型 | 说明 | 游戏商品 |
|---|---|---|
| CONSUMABLE | 消耗型 | 金币、道具 |
| NON_CONSUMABLE | 非消耗型 | 去广告、主题 |
| SUBSCRIPTION | 订阅 | 月卡 |
三、检查购买状态
async function checkPurchase(): Promise<void> { const products = await IAP.getPurchasedProducts(); const hasRemoveAds = products.some(p => p.productId === 'remove_ads'); AppStorage.setOrCreate('adsRemoved', hasRemoveAds); } // 恢复购买 async function restorePurchases(): Promise<void> { await IAP.restorePurchases(); await checkPurchase(); }四、最佳实践
- 商品 ID 唯一:在 AGC 配置商品 ID 与代码一致
- 消耗品用完即消耗:
IAP.consume(productId) - 掉单处理:启动时检查未消耗订单
- 恢复购买:提供恢复按钮给已购买用户
总结
IAP 实现应用内购买,支持消耗型和非消耗型商品。核心要点:purchase(productId)购买、getPurchasedProducts查询、restorePurchases恢复。
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
- IAP Kit 文档
- 第 158 篇:silent-login
- 第 160 篇:payment
- 第 161 篇:bg-task