UDN
Search public documentation:
MicroTransactionsCH
English Translation
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
微交易系统
概述
MicroTransactionBase
MicroTransactionBase
类是个基类,包含了执行微交易的功能。该类继承于 PlatformInterfaceBase
,并使用了那个类中包含的代理系统。每个平台(PC、iOS等)有它自己的继承于 CloudStorageBase
的子类,这些子类提供了针对那个特定平台的实现。
属性
- AvailableProducts - 存放了可供购买的产品列表,当
MTD_PurchaseQueryComplete
调用返回完成后由QueryForAvailablePurchases()
函数填充该列表。 - LastError - 如果在购买过程中发生了错误,该项存放了最近一次错误的描述(
string
)。 - LastErrorSolution - 如果在购买过程中发生了任何错误,该项存放了任何可能的解决方案的描述(
string
)。
- Init - 当初始化微交易系统时引擎调用的事件。
- QueryForAvailablePurchases - 查询系统获得可供购买的产品,并返回是否成功发起了查询动作。
- IsAllowedToMakePurchase - 返回是否允许用户进行购买。
- BeginPurchase [Index] - 启动从
AvailableProducts
列表中购买产品的过程,并返回购买动作是否成功。- Index -
Int
指出了到要购买的产品的AvailableProducts
数组中的索引。
- Index -
EMicroTransactionDelegate
枚举值定义了可以接受函数调用返回的代理类型的ID。通过使用 平台接口代理系统来为其中任何一种类型分配代理。
- MTD_PurchaseQueryComplete - 当通过
QueryForAvailablePurchases()
完成查找可购买产品时执行分配给这个ID的代理。- bSuccessful - TRUE。
- Data - 不包含数据。
- MTD_PurchaseComplete - 当完成一次购买产品尝试时执行分配给这个ID的代理。
- bSuccessful - TRUE。
- Data -
IntValue
将包含EMicroTransactionResult
中的其中一个枚举值,StringValue
具有使用BeginPurchase
函数购买的产品的PurchaseInfo
中的Identifier(标识符)
。如果返回MTR_Failed
,那么将会使用最近的本地化的可能的解决方案填充LastError
和LastErrorSolution
。
产品
PurchaseInfo
的形式存储在 AvailableProducts
数组中。这个结构体包含了关于需要显示给用户的必要产品信息,并允许购买该产品。
- Identifier - 一个
string(字符串)
,代表产品的唯一标识符。 - DisplayName - 一个
string(字符串)
,存放了向用户显示的产品名称。 - DisplayDescription - 一个
string(字符串)
,存放了向用户显示的产品描述。 - DisplayPrice - 一个
string(字符串)
,存放了向用户显示的产品价格。
实现细节
- 确保在iOS Provisioning Portal中设置您的游戏使用微交易系统,并设置通过iTunes Connect应用程序可以购买的您的游戏中的产品。要想获得更多信息,请参照Apple开发者网站。
- 根据您放置微交易系统功能的位置的不同,通常可以在
PostBeginPlay()
或其他初始化函数中通过调用PlatformInterfaceBase
类的静态函数GetMicroTransactionInterface()
来获得到MicroTransactionBase=
对象的引用,并设置产品查询和购买调用返回的代理。var MicroTransactionBase MicroTrans; ... MicroTrans = class'PlatformInterfaceBase'.static.GetMicroTransactionInterface(); MicroTrans.AddDelegate(MTD_PurchaseQueryComplete, OnProductQueryComplete); MicroTrans.AddDelegate(MTD_PurchaseComplete, OnProductPurchaseComplete);
OnProductQueryComplete
和OnProductPurchaseComplete
只是示例。这些可以是任何和PlatformInterfaceDelegate
代理的签名相匹配的函数的名称。delegate PlatformInterfaceDelegate(const out PlatformInterfaceDelegateResult Result);
- 要想获得游戏中可购买的产品的列表,可以在
MicroTransactionBase
对象上调用QueryForAvailablePurchases()
函数,并等待MTD_PurchaseQueryComplete
函数返回,此时您可以处理AvailableProducts(可购买的产品)
列表来将它们以您期望的方式显示给用户(一般是显示在某种菜单中)。MicroTrans.QueryForAvailablePurchases();
- 一旦获得了产品列表,可以通过在
MicroTransactionBase
对象上调用BeginPurchase()
来购买产品,并且向该函数传入要购买的产品的索引。这一般是当用户按下菜单中的一个按钮时所产生的结果。这将会尝试购买MicroTrans.BeginPurchase(0);
AvailableProducts
中的第一个产品(索引为0)。
UDKBase\Classes
目录的 CloudMenuMicroTransaction.uc
脚本中找到。