当用户重新安装您的应用程序时,应授予他们已拥有的任何非消耗性或可续订订阅产品。应用商店会永久保存每个用户非消耗性和可续订订阅产品的记录,Unity IAPUnity 应用内购买的缩写
参见 术语表 可以检索这些记录。Apple 平台上的非续订订阅无法恢复。如果您在 Apple 平台上使用非续订订阅产品,则您需要自行保存活动订阅的记录,并在设备之间同步订阅。
在支持此功能的平台(例如 Google Play 和通用 Windows 应用程序)上,Unity IAP 会在重新安装后的第一次初始化期间自动恢复用户拥有的任何产品;IStoreListener
的 ProcessPurchase
方法将为每个已拥有项目调用。
在 Apple 平台上,用户必须输入其密码才能检索以前的交易,因此您的应用程序必须为用户提供一个按钮让他们执行此操作。在此过程中,IStoreListener
的 ProcessPurchase
方法将为用户已拥有的任何项目调用。
/// <summary>
/// Your IStoreListener implementation of OnInitialized.
/// </summary>
public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
{
extensions.GetExtension<IAppleExtensions> ().RestoreTransactions (result => {
if (result) {
// This does not mean anything was restored,
// merely that the restoration process succeeded.
} else {
// Restoration failed.
}
});
}