示例代码合集地址:
HarmonyOS示例代码-鸿蒙系统示例代码-华为开发者联盟 (huawei.com)
代码工程地址:
IAPKit-Sample-Clientdemo-ArkTS: 此示例实现了接入IAP Kit消耗型商品、非消耗型商品、自动续期订阅商品购买能力。 (gitee.com)
应用内支付
介绍
IAP Kit(应用内支付服务)为App提供便捷的应用内支付体验和简便的接入流程,让您聚焦App本身的业务能力,助力您的商业变现。您的App可通过使用华为应用内提供的系统级支付API快速启动IAP收银台,即可实现应用内支付。 通过应用内支付服务,用户可以在您的App内购买各种类型的虚拟商品,包括消耗型商品、非消耗型商品和自动续期订阅商品。
- 消耗型商品:使用一次后即消耗掉,随使用减少,需要再次购买的商品。例:游戏货币,游戏道具等。
- 非消耗型商品:一次性购买,永久拥有,无需消耗。例:游戏中额外的游戏关卡、应用中无时限的高级会员等。
- 自动续期订阅商品:用户购买后在一段时间内允许访问增值功能或内容,周期结束后自动续期购买下一期的服务。例:应用中有时限的高级会员,如视频月度会员。
本示例展示了使用应用内支付服务提供的接入支付的能力,需要使用应用内支付服务接口 @kit.IAPKit。
效果预览
工程的配置与使用
工程配置说明
- 完成AppGallery Connect相关配置。详情请参见:配置AppGallery Connect。
- 在AppGallery Connect中添加商品信息。详情请参见:配置商品信息。
- 配置示例代码:
- "AppScope/app.json5"文件中的bundleName修改为您自己应用的包名。
- 替换"entry/src/main/module.json5"文件中的client_id和app_id,详情请参见:配置应用身份信息。
- 在"build-profile.json5"文件中配置应用签名。
- 将本demo中的商品替换为您的商品(替换iap.queryProducts接口参数中productIds字段的商品ID,注意商品ID和商品的类型要匹配)。
- 在真机上运行该示例代码。
工程应用使用说明
- 在手机的主屏幕,点击“设置” - “华为账号”,确保华为账号是登录状态。
- 在手机的主屏幕,点击“IAP Demo”,启动应用。
- 在主界面可见三个按钮:
Consumables:消耗型商品购买。
NonConsumables:非消耗型商品购买。
Subscriptions:自动续期订阅商品购买。 - 点击相应按钮后,在主界面可见演示商品信息以及金额按钮。
- 点击金额按钮,拉起收银台,完成支付后,返回到商品页,弹出支付成功提示。
相关权限
无
依赖
需要登录华为账号。
约束与限制
设备类型:华为手机、华为平板、2in1。
HarmonyOS系统:HarmonyOS NEXT Developer Beta1及以上。
DevEco Studio版本:DevEco Studio NEXT Developer Beta1及以上。
HarmonyOS SDK版本:HarmonyOS NEXT Developer Beta1 SDK及以上。
代码结构解读
└── entry/src/main/ets └── common // 公共组件 │ └── JWTUtil.ts // JWT工具组件,用于解析购买数据 │ └── Logger.ts // 日志打印组件 │ └── entryability // 所有的ability │ └── EntryAbility.ets // 应用首页ability │ └── pages // 所有的页面 └── ConsumablesPage.ets // 消耗型商品对应的页面组件,用于展示商品、支付按钮等 └── EntryPage.ets // 应用首页对应的页面组件,用于展示消耗型商品购买、非消耗型商品购买、自动续期订阅商品购买按钮 └── NonConsumablesPage.ets // 非消耗型商品对应的页面组件,用于展示商品、支付按钮等 └── SubscriptionsPage.ets // 自动续期订阅商品对应的页面组件,用于展示商品、支付