开发者控制台

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日