使用 iOS 内购

利用内购为 iOS 游戏增加更多付费内容。

Choose your operating system:

Windows

macOS

Linux

配置

  1. 在 iTunes Connect 中设置内购:

    Google Play 要求 id 全部为小写字母。为便于进行蓝图设置,最好使 iOS 和安卓 ID 相匹配。

    image alt text

  2. 记录使用的 ID,以及物品是否为消耗品。

  3. 如项目为蓝图项目,则可直接开始。如项目为代码项目,尚未设置项目使用在线生态系统,则需要将以下代码块添加到项目的 Build.cs 文件中:

    if (Target.Platform == UnrealTargetPlatform.IOS)
    {
        PrivateDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "OnlineSubsystem" });
        DynamicallyLoadedModuleNames.Add("OnlineSubsystemIOS");
    }
  4. 编辑 [ProjectName]/Config/IOS/IOSEngine.ini:

    [OnlineSubsystemIOS.Store]
    bSupportsInAppPurchasing=True

读取购买信息

image alt text

然后您可以使用 读取应用程序内购买信息(Read In-App Purchase Information) 蓝图节点(或关联的C++函数调用)阅读应用程序内购买信息。像大多数其他在线子系统函数一样,它将玩家控制器作为输入以及您的产品辨识符数组。注意,下方的进行应用程序内购买(Make In-App Purchase)采用单个辨识符,而读取(Read)可以处理信息数组。此函数返回应用程序内购买(In App Purchase)结构体的数组,且该数组的各个元素均可以经过分析来获取名称、描述、价格和其他数据,以显示在您的UI中或用于您的游戏进程逻辑。

完成购买

image alt text

若要进行应用程序内购买,请使用 进行应用程序内购买(Make In-App Purchases) 蓝图节点(或关联的C++函数调用)。它将玩家控制器作为输入以及产品请求(Product Request)结构体。产品请求(Product Request)就是来自iTunes Connect或Google Play Developer主机的产品辨识符(此例中为match3theme_night),以及产品是否是消费品。

进行应用程序内购买(Make an In-App Purchase) 节点是潜在的,因此您希望使其依赖于购买成功与否的任何游戏进程行为都应使用那两个执行引脚。它们将仅在收到在线服务返回的响应后执行。此节点还返回购买的完成状态(例如成功(Success)、失败(Failed)、恢复(Restored))和详细的应用程序内购买信息(In App Purchase Information)结构体。

此函数有非潜在版本(将显示蓝图节点,而不显示时钟)。此处的退出执行引脚并不会等待在线服务的响应,因此您通常需要使用潜在版本。

恢复购买

image alt text

若要恢复购买,请使用 恢复应用程序内购买(Restore In-App Purchases) 蓝图节点(或关联的C++函数调用)。它仅接受玩家控制器,并返回与该玩家控制器关联的所有购买信息的数组。然后您可以处理该数组,以与您的游戏进程逻辑需要的特定辨识符进行对比。

测试

可自行将版本载入设备(或上传至 iTunes Connect)进行测试。测试购买的用户必须是 iTunes Connect 中的内部或外部测试人员,且必须接受邀请。此外还需要自定义条款。

实用链接

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消