IAP v4 初始化
如需使用 IAP v4,须在购买前请求一次 IAP 初始化。请求 IAP 初始化后,应用客户端会将可用的商店信息作为结果值返回。
商店信息¶
商店信息定义为 IAPV4Type 枚举,字段说明如下。
| 字段名称 | 描述 |
|---|---|
| APPLE_APPSTORE | 苹果应用商店 |
| GOOGLE_PLAYSTORE | 谷歌 Play 商店 |
| HIVE_LEBI | Lebi 商店 |
| ONESTORE | ONE 商店 |
| AMAZON_APPSTORE | 亚马逊应用商店(仅适用于 SDK v4) |
| SAMSUNG_GALAXYSTORE | 三星 Galaxy 商店 |
| HUAWEI_APPGALLERY | 华为应用市场 |
| HIVESTORE | PG(支持 Windows 用 Unity、iOS、Android) |
| ANIMATE_GO | animate Games Online(仅限 Android) |
| DMM | DMM 积分商店。在 Windows 上通过 DMM GAME PLAYER 运行时使用。 |
HIVESTOREPG仅支持产品搜索和购买,不支持基于客户端的收据验证。DMM结算仅在 Windows 上通过 DMM GAME PLAYER 运行时使用,并基于 DMM 积分运作。
即使商店中的应用服务终止,现有用户仍需能够访问游戏内货币商店以继续游戏。因此,应用必须将现金结算商店与游戏内货币商店分开设计。IAP v4 初始化返回的结果值并非用于访问游戏内商店,请勿用于其他目的。
DMM 结算须知¶
DMM 结算仅在 Windows 上通过 DMM GAME PLAYER 运行时使用。本文档中与 DMM 相关的内容均以 Windows 环境为准。关于 DMM 登录与管理令牌的限制,请先参阅 DMM 登录。
DMM 结算是指用户使用已充值的 DMM 积分购买商品的结算方式。付款请求和恢复流程遵循 IAP v4 的常规购买流程,同时会一并执行 DMM 专属的分支处理,例如确认 DMM 积分余额、引导用户充值积分等。因此,即使在 Windows DMM 环境下,也会在保持现有 IAP v4 流程的同时,一并处理基于 DMM 积分的结算条件。
前期准备:控制台注册¶
要使用 DMM 认证,请先参阅使用 DMM 登录。
DMM 结算特点¶
结算无需单独的结算窗口 UI,调用 purchase() 后即刻确认完成。但根据服务器处理情况,购买完成后可能不会立即返回收据,此时请调用 restore() 重新获取收据。
调用 DMM 结算 API 需要有效的管理令牌 onetime_token。有关令牌有效期、自动续期、过期处理等内容,请参阅 DMM 登录。
DMM 结算须知¶
DMM 结算仅在 Windows 上通过 DMM GAME PLAYER 运行时使用。本文档中与 DMM 相关的内容均以 Windows 环境为准。关于 DMM 登录与管理令牌的限制,请先参阅 DMM 登录。
DMM 结算是指用户使用已充值的 DMM 积分购买商品的结算方式。付款请求和恢复流程遵循 IAP v4 的常规购买流程,同时会一并执行 DMM 专属的分支处理,例如确认 DMM 积分余额、引导用户充值积分等。因此,即使在 Windows DMM 环境下,也会在保持现有 IAP v4 流程的同时,一并处理基于 DMM 积分的结算条件。
前期准备:控制台注册¶
要使用 DMM 认证,请先参阅使用 DMM 登录。
DMM 结算特点¶
结算无需单独的结算窗口 UI,调用 purchase() 后即刻确认完成。但根据服务器处理情况,购买完成后可能不会立即返回收据,此时请调用 restore() 重新获取收据。
调用 DMM 结算 API 需要有效的管理令牌 onetime_token。有关令牌有效期、自动续期、过期处理等内容,请参阅 DMM 登录。
初始化 IAPv4¶
如需初始化 IAP v4,须调用 IAPV4 类的 marketConnect() 方法。
以下是初始化 IAP v4 的示例代码。
API 参考: hive.IAPV4.marketConnect
API 参考: IAPV4::marketConnect
API 参考: IAPV4.marketConnect
API 参考: com.hive.IAPV4.marketConnect
API 参考: IAPV4Interface .marketConnect
API 参考: HIVEIAPV4::marketConnect
检查初始化结果¶
使用多个商店时,回调传递的 marketList 中包含 Hive 控制台中设置的商店,并会根据商店初始化是否成功按如下方式区分回调。
- 所有商店或仅部分商店连接成功时:
ResultAPI返回成功,marketList中仅传递连接成功的商店。 - 所有商店连接失败时:
ResultAPI返回错误代码,marketList返回无值(null)。
例如,在 Hive 控制台中同时设置了 App Store 和 PG(Hive Store)的应用中,如果只有 PG(Hive Store)连接失败:
ResultAPI:返回成功marketList:[APPLE_APPSTORE](仅传递成功的商店)
Warning
如果 marketConnect() 方法调用失败,将无法正常进行商品列表查询或购买。失败原因如下:
- 设备账号登录异常
- Google Play Store、Apple App Store 等商店平台应用登录异常
- Hive 控制台中 App ID 对应的商店配置异常
即使 ResultAPI 返回成功,也不表示控制台中设置的所有商店均已连接。如果控制台中设置的商店数量与 marketList 中的商店数量不同,表示部分商店连接失败,因此请仅使用返回的 marketList 中的商店继续后续结算流程。
如果 ResultAPI 返回失败(全部失败),应用客户端应自行实现处理逻辑,例如重试直到收到成功回调,或通过弹窗向用户提示错误情况(商店不可用)。
相关返回码请参阅 IAP v4 Result API Guide。
Notes for initialization¶
从 Hive SDK v4 Unity Windows 25.8.0 开始,支持 Google Play 的 Windows 应用,可使用 GOOGLE_PLAYSTORE 商店。开发时请注意:
IAPV4.marketConnect调用前,用户必须在 PC Google Play Games 应用中完成 Google 账号登录。- 必须准备好 manifest.xml 文件。
从 Hive SDK v4 iOS 26.3.2 版本开始,可使用 PG(HIVESTORE)。
Google Play for native PC 初始化失败处理(Hive SDK v4 Unity Windows 26.4.2 及以上版本)¶
当 Play Games PC SDK 初始化失败需要退出应用时,系统不会强制退出,而是通过 IAPV4.marketConnect 回调传递结果。这是为了让应用能够自行控制退出的时机和方式。
当 Play Games PC SDK 初始化失败(kActionRequiredShutdownClientProcess)时,IAPV4.marketConnect 回调会传递 IAPV4PlayStoreActionRequiredShutdown(-6100706) 结果代码。
收到该结果代码时,建议尽快退出应用进程。由于 ResultAPI.needExit() 会返回 true,因此可以通过 needExit() 判断是否需要退出。退出进程后,Play Games PC SDK 侧会为用户支持尝试后续处理。