在线服务商务接口(Online Services Commerce Interface) 是虚幻引擎中使玩家能够在Gameplay之外购买或兑换游戏内容的游戏服务的基础。商务接口包含两个主要组件:
- 交易(Transactions) :使用平台货币购买商城物品的过程。
- 交易完成后,接口将授予玩家相应的权利。
- 权利(Entitlements) :玩家有权接收或使用的内容。
- 玩家可能因为购买了物品或兑换了游戏代码而接收或使用权利。
API概述
下表概要说明了商务接口中包含的函数。
| 函数 | 说明 |
|---|---|
| 商品 | |
QueryOffers |
获取商城中的所有可用商品的列表,并将其缓存在接口中。这包括所有可用的可下载内容(DLC)、程序包、物品,等等。 |
QueryOffersById |
获取提供的ID列表中可用商品的列表,并将其缓存在接口中。 |
GetOffers |
从接口检索 QueryOffers 缓存的商品。 |
GetOffersById |
从接口中缓存的提供的ID列表检索商品。 |
| 商城 | |
ShowStoreUI |
显示原生商城UI,供用户在游戏客户端之外查看商城信息或处理交易。 |
| 结账 | |
Checkout |
使用通过 GetOffers 或 GetOffersById 检索的一个或多个购买商品启动购买流程。 |
| 事件监听 | |
OnPurchaseCompleted |
每次本地用户完成交易时触发的事件。这可以在内部通过 Checkout 启动,也可以在外部通过原生商城UI启动。 |
| 权利 | |
QueryTransactionEntitlements |
查看对应于成功 Checkout 调用的游戏内权利,以向玩家提供这些福利。 |
QueryEntitlements |
获取商城中特定用户已经获得的权利的列表,并将其缓存在接口中。 |
GetEntitlements |
从接口检索 QueryEntitlements 缓存的商品。 |
RedeemEntitlement |
将权利标记为"已兑换"。后续查询时,该权利将带有已兑换标记。这很适合没有外部游戏服务来管理权利的情况。 |
| 验证 | |
RetreiveS2SToken |
返回一个令牌,可将其发送到游戏服务后端,以与平台通信并验证给定权利的所有权。 |
流程
现在我们提供一个使用在线服务商务接口的示例流程,该流程将监管用户启动游戏、进入游戏内商城进行购买并验证该购买以供使用的流程。
启动游戏
用户启动游戏并向其所需在线服务成功验证身份后,游戏会调用 QueryEntitlements 。游戏会将 QueryEntitlements 缓存的数据与用户的存档数据中注册的权利比较,从而查看在用户离线时授予了哪些权利,并相应将其应用于用户。同时,游戏使用OnPurchaseCompleted事件监听未来用户完成购买时的消息。
进入游戏内商城接口
用户将在游戏内打开商城的菜单。游戏会在调用QueryOffers时为打开商城的用户显示加载画面。查询解决后,游戏接着会调用GetOffers来获取数据的本地副本。然后,本地副本会传递到UI框架,以渲染和显示游戏商品。
执行交易
查看商品中的物品后,用户可决定购买特定产品,我们称之为 PRODUCT_A 。用户会将 PRODUCT_A 添加到游戏内购物车(由游戏内UI处理),并确认交易。验证用户身份后,游戏将使用 PRODUCT_A 的ID调用 Checkout 。此时用户会进入平台UI,进行最终确认和支付处理。
Checkout 成功解决并且 OnPurchaseCompleted 事件触发后,游戏会在给定交易ID上调用 QueryTransactionEntitlements ,获取交易中授予用户的游戏内权利ID,并将其应用于用户的存档游戏。如果 PRODUCT_A 不应该全局授予用户的Gameplay,游戏会接着调用 RedeemEntitlement ,确保 PRODUCT_A 的权利不会复制。
验证交易
成功购买和兑换 PRODUCT_A 后,用户可决定使用新购买的 PRODUCT_A 进入在线游戏。验证游戏服务器的身份时,游戏会注意到本地用户在认领新权利,并会请求验证令牌以确保产品合法。游戏会在提供用于验证的ID上调用 RetrieveS2SToken ,并获取JSON Web令牌(JWT),后端服务接着会使用它连接到平台服务并验证产品的所有权。此函数成功返回后,用户即可以使用新购买的物品进入在线游戏。
从在线子系统转换代码
在线服务商务接口负责在线子系统中的 商城(Store) (只读代码)和 购买(Purchase) (读/写代码)拥有的所有代码。下表显示了在线系统商务接口中的对象与其在旧版在线子系统中的同等对象之间的对应关系。
更多信息
头文件
欢迎直接查阅 Commerce.h 头文件,根据需要了解更多信息。商务接口头文件 Commerce.h 位于以下目录中:
UNREAL_ENGINE_ROOT\Engine\Plugins\Online\OnlineServices\Source\OnlineServicesInterface\Public\Online
如需有关如何获取UE源代码的逐步指南,请参阅关于下载虚幻引擎源代码的文档。