Unity的分级订阅、方法和事件
Unity的分级订阅、方法和事件
重要须知: 目前,分级订阅仅面向部分合作伙伴开放。
亚马逊Appstore SDK可以帮助开发者在Unity应用中提供分级订阅功能。
如需在Unity项目中使用分级订阅,您必须先在开发者控制台中手动将订阅、分级和期限创建为IAP商品。每次输入一条关于IAP商品的数据,然后提交每个订阅。这样您便可以在应用中使用这些订阅。您可以随时更新IAP商品。
开始之前,请阅读在开发者控制台中设置分级订阅。
本文档概述了对Unity插件修改分级订阅的可用方法和事件。还提供了一些示例,以帮助您开始操作。
Unity插件修改订阅方法
请求由开发者以方法调用的形式发起。下面的支持数据对象表中描述了相关参数和事件。
返回类型 | 方法 | 方法摘要 | 事件 |
---|---|---|---|
RequestOutput | ModifySubscription(ModifySubscriptionInput input) | 为具有给定按比例分配模式的期限SKU的订阅发起修改请求。 | ModifySubscriptionResponse |
修改订阅支持数据对象
下表描述了用作方法和事件参数的对象。
对象 | 成员 | 描述 |
---|---|---|
ModifySubscriptionInput | SkuInput skuInput |
订阅期限的SkuInput。 |
string prorationMode |
ProrationMode指定修改何时生效,其值为IMMEDIATE或DEFERRED。 | |
ModifySubscriptionResponse | string requestId |
最初由ModifySubscription返回的请求ID。 |
AmazonUserData amazonUserData |
请参阅AmazonUserData。 | |
List receipts |
请参阅PurchaseReceipt。 | |
string status |
与PurchaseResponse状态相同。 | |
PurchaseReceipt | string receiptId |
收据ID,是购买的唯一标识符。 |
long cancelDate |
购买的取消日期,以自1970年1月1日00:00:00 GMT起的毫秒数计算,如果未取消则为0。 | |
long purchaseDate |
购买日期,以自1970年1月1日00:00:00 GMT起的毫秒数计算。 | |
string productType |
产品的类型。值可以为CONSUMABLE、ENTITLED或SUBSCRIPTION。有关更多信息,请参阅了解应用内购买。 | |
long deferredDate |
如果在DEFERRED按比例分配模式下修改,则为延迟修改的日期。有关更多信息,请参阅DEFERRED ProrationMode。 | |
string deferredSku |
客户将在DEFERRED模式下自其进行切换的SKU。 | |
string termSku |
客户将切换到的新SKU。 |
按比例分配模式
修改订阅时,定义了两种按比例分配模式,用于确定意图进行的修改生效时的行为。
按比例分配模式 | 描述 |
---|---|
IMMEDIATE | 客户当前的订阅方案终止,而新方案将立即生效。请参阅IMMEDIATE ProrationMode。 |
DEFERRED | 订阅方案会在下一次续订时更改。请参阅DEFERRED ProrationMode。 |
修改订阅API示例代码
如果您不熟悉Unity中的调用方法和事件处理,请参阅发起方法调用和在Unity中处理事件。
ModifySubscription
ModifySubscription发起具有给定按比例分配模式的期限SKU的订阅的修改请求。
using com.amazon.device.iap.cpt;
// 获取用于与pluginIAmazonIapV2交互的对象
iapService = AmazonIapV2Impl.Instance;
// 构造作为输入传递至操作的对象
ModifySubscriptionInput request = new ModifySubscriptionInput();
// 设置输入SKU值
SkuInput skuInput = new SkuInput();
skuInput.Sku = "sku";
request.SkuInput = skuInput;
// 将按比例分配模式设置为IMMEDIATE或DEFERRED
request.ProrationMode = "deferred";
// 在有输入对象的情况下调用同步操作
RequestOutput response = iapService.ModifySubscription(input);
ModifySubscriptionResponse
ModifySubscriptionResponse返回来自ModifySubscription调用的响应。
using com.amazon.device.iap.cpt;
// 获取用于与插件交互的对象
IAmazonIapV2 iapService = AmazonIapV2Impl.Instance;
// 定义事件处理程序
private void EventHandler(ModifySubscriptionResponse args)
{
string requestId = args.RequestId;
string status = args.Status;
List<PurchaseReceipt> receipts = args.Receipts;
// 对于每个购买收据您可以获得以下值
string receiptId = receipts[0].ReceiptId;
long cancelDate = receipts[0].CancelDate;
long purchaseDate = receipts[0].PurchaseDate;
string sku = receipts[0].Sku;
string productType = receipts[0].ProductType;
string deferredDate = receipts[0].DeferredDate;
string deferredSku = receipts[0].DeferredSku;
string termSku = receipts[0].TermSku;
}
// 注册事件
iapService.AddModifySubscriptionResponseListener(EventHandler);
Last updated: 2024年12月3日