Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 购买不适用于XBox和Microsoft应用商店_C#_Unity3d - Fatal编程技术网

C# 购买不适用于XBox和Microsoft应用商店

C# 购买不适用于XBox和Microsoft应用商店,c#,unity3d,C#,Unity3d,Unity3D。Xbox。 实现了为游戏购买许可证。在Microsoft Store for desctop Windows中,它可以正常工作(从应用商店和Visual Studio下安装时,包括在调试程序集中),在开发和零售模式下,它在XBox上不工作。许可证(购买)已在商店里存放了一周。为了进行实验,我将程序集发布在openaccess中(这一天还没有过去)。我再说一遍:购买在桌面上没有问题,在XBox上没有问题。此代码不起作用(两种情况下,检查都起作用): Бааа public

Unity3D。Xbox。 实现了为游戏购买许可证。在Microsoft Store for desctop Windows中,它可以正常工作(从应用商店和Visual Studio下安装时,包括在调试程序集中),在开发和零售模式下,它在XBox上不工作。许可证(购买)已在商店里存放了一周。为了进行实验,我将程序集发布在openaccess中(这一天还没有过去)。我再说一遍:购买在桌面上没有问题,在XBox上没有问题。此代码不起作用(两种情况下,检查都起作用):

Бааа

    public static async void PurchaseFullLicense(Action<XBoxIAPStatus, Exception> purchaseCallback, Action<XBoxIAPStatus> licChanged)
    {
#if ENABLE_IL2CPP && UNITY_WSA_10_0
        licenseChanged = licChanged;

        if (context == null)
        {
            context = StoreContext.GetDefault();

            // Подписываемся на событие изменения лицензии
            context.OfflineLicensesChanged += context_OfflineLicensesChanged;
        }

        if (context == null)
        {
            purchaseCallback?.Invoke(XBoxIAPStatus.NoInitContext, null);

            return;
        }

        // Получить информацию о продукте в магазине приложений
        StoreProductResult productResult = await context.GetStoreProductForCurrentAppAsync();
        if (productResult == null || productResult.Product == null)
        //if (productResult.ExtendedError != null)
        {
            // Пользователь может быть отключен или может быть какой-то другой сбой сервера
            purchaseCallback?.Invoke(XBoxIAPStatus.NotGetStoreProduct, productResult.ExtendedError);

            return;
        }

        // Покупка полной лицензии ...
        StoreAppLicense license = await context.GetAppLicenseAsync();
        if (license != null && appLicense.IsActive && license.IsTrial)
        {
            // Пока демо версия
            StorePurchaseResult result = await productResult.Product.RequestPurchaseAsync();
            if (result.ExtendedError != null)
            {
                // Ошибка: print result.ExtendedError.Message
                purchaseCallback?.Invoke(XBoxIAPStatus.NotRequestPurchase, null);

                return;
            }

            // Покупка прошла. Результат:
            switch (result.Status)
            {
                case StorePurchaseStatus.AlreadyPurchased:
                    // Вы уже купили это приложение и имеете полностью лицензированную версию
                    purchaseCallback?.Invoke(XBoxIAPStatus.AlreadyPurchased, null);
                    return;

                case StorePurchaseStatus.Succeeded:
                    // Лицензия будет обновлена автоматически с помощью события StoreContext.OfflineLicensesChanged
                    purchaseCallback?.Invoke(XBoxIAPStatus.Succeeded, null);
                    return;

                case StorePurchaseStatus.NotPurchased:
                    // Товар не был куплен, возможно, он был отменен
                    purchaseCallback?.Invoke(XBoxIAPStatus.NotPurchased, null);
                    return;

                case StorePurchaseStatus.NetworkError:
                    // Сетевая ошибка
                    purchaseCallback?.Invoke(XBoxIAPStatus.NetworkError, null);
                    return;

                case StorePurchaseStatus.ServerError:
                    // Ошибка сервера
                    purchaseCallback?.Invoke(XBoxIAPStatus.ServerError, null);
                    return;

                default:
                    // Не определённая ошибка
                    purchaseCallback?.Invoke(XBoxIAPStatus.UnDefined, null);
                    return;
            }
        }
        else
            // Вы уже купили это приложение и имеете полностью лицензированную версию
            purchaseCallback?.Invoke(XBoxIAPStatus.LicenseFull, null);
#else
        purchaseCallback?.Invoke(XBoxIAPStatus.NotXBoxPlatform, null);
#endif
#pragma warning restore 1998
    }
public静态异步void PurchaseFullLicense(操作purchaseCallback,操作licChanged)
{
#如果启用\u IL2CPP&&UNITY\u WSA\u 10\u 0
licenseChanged=licChanged;
if(上下文==null)
{
context=StoreContext.GetDefault();
// Подписываемся на событие изменения лицензии
context.offlinelicensechanged+=context\u offlinelicensechanged;
}
if(上下文==null)
{
purchaseCallback?.Invoke(XBoxIAPStatus.NoInitContext,null);
返回;
}
// Получить информацию о продукте в магазине приложений
StoreProductResult=等待上下文。GetStoreProductForCurrentAppAsync();
if(productResult==null | | productResult.Product==null)
//if(productResult.ExtendedError!=null)
{
// Пользователь может быть отключен или может быть какой-то другой сбой сервера
purchaseCallback?.Invoke(XBoxIAPStatus.NotGetStoreProduct、productResult.ExtendedError);
返回;
}
// Покупка полной лицензии ...
StoreAppLicense许可证=等待上下文。GetApplicenseAync();
if(license!=null&&appLicense.IsActive&&license.IsTrial)
{
// Пока демо версия
StorePurchaseResult=等待productResult.Product.RequestPurchaseAsync();
if(result.ExtendedError!=null)
{
//CharStyleбббб:打印结果.ExtendedError.Message
purchaseCallback?.Invoke(XBoxIAPStatus.NotRequestPurchase,null);
返回;
}
// Покупка прошла. Результат:
开关(结果状态)
{
case StorePurchaseStatus.AlreadyPurchased:
// Вы уже купили это приложение и имеете полностью лицензированную версию
purchaseCallback?.Invoke(XBoxIAPStatus.AlreadyPurchased,null);
返回;
案例StorePurchaseStatus。成功:
//商店环境。离线许可证转让
purchaseCallback?.Invoke(XBoxIAPStatus.successed,null);
返回;
case StorePurchaseStatus.NotPurchased:
// Товар не был куплен, возможно, он был отменен
purchaseCallback?.Invoke(XBoxIAPStatus.NotPurchased,null);
返回;
case StorePurchaseStatus.NetworkError:
// Сетевая ошибка
purchaseCallback?.Invoke(XBoxIAPStatus.NetworkError,null);
返回;
case StorePurchaseStatus.ServerError:
// Ошибка сервера
purchaseCallback?.Invoke(XBoxIAPStatus.ServerError,null);
返回;
违约:
// Не определённая ошибка
purchaseCallback?.Invoke(XBoxIAPStatus.UnDefined,null);
返回;
}
}
其他的
// Вы уже купили это приложение и имеете полностью лицензированную версию
purchaseCallback?.Invoke(XBoxIAPStatus.LicenseFull,null);
#否则
purchaseCallback?.Invoke(XBoxIAPStatus.NotXBoxPlatform,空);
#恩迪夫
#布拉格警告恢复1998
}
    public static async void PurchaseFullLicense(Action<XBoxIAPStatus, Exception> purchaseCallback, Action<XBoxIAPStatus> licChanged)
    {
#if ENABLE_IL2CPP && UNITY_WSA_10_0
        licenseChanged = licChanged;

        if (context == null)
        {
            context = StoreContext.GetDefault();

            // Подписываемся на событие изменения лицензии
            context.OfflineLicensesChanged += context_OfflineLicensesChanged;
        }

        if (context == null)
        {
            purchaseCallback?.Invoke(XBoxIAPStatus.NoInitContext, null);

            return;
        }

        // Получить информацию о продукте в магазине приложений
        StoreProductResult productResult = await context.GetStoreProductForCurrentAppAsync();
        if (productResult == null || productResult.Product == null)
        //if (productResult.ExtendedError != null)
        {
            // Пользователь может быть отключен или может быть какой-то другой сбой сервера
            purchaseCallback?.Invoke(XBoxIAPStatus.NotGetStoreProduct, productResult.ExtendedError);

            return;
        }

        // Покупка полной лицензии ...
        StoreAppLicense license = await context.GetAppLicenseAsync();
        if (license != null && appLicense.IsActive && license.IsTrial)
        {
            // Пока демо версия
            StorePurchaseResult result = await productResult.Product.RequestPurchaseAsync();
            if (result.ExtendedError != null)
            {
                // Ошибка: print result.ExtendedError.Message
                purchaseCallback?.Invoke(XBoxIAPStatus.NotRequestPurchase, null);

                return;
            }

            // Покупка прошла. Результат:
            switch (result.Status)
            {
                case StorePurchaseStatus.AlreadyPurchased:
                    // Вы уже купили это приложение и имеете полностью лицензированную версию
                    purchaseCallback?.Invoke(XBoxIAPStatus.AlreadyPurchased, null);
                    return;

                case StorePurchaseStatus.Succeeded:
                    // Лицензия будет обновлена автоматически с помощью события StoreContext.OfflineLicensesChanged
                    purchaseCallback?.Invoke(XBoxIAPStatus.Succeeded, null);
                    return;

                case StorePurchaseStatus.NotPurchased:
                    // Товар не был куплен, возможно, он был отменен
                    purchaseCallback?.Invoke(XBoxIAPStatus.NotPurchased, null);
                    return;

                case StorePurchaseStatus.NetworkError:
                    // Сетевая ошибка
                    purchaseCallback?.Invoke(XBoxIAPStatus.NetworkError, null);
                    return;

                case StorePurchaseStatus.ServerError:
                    // Ошибка сервера
                    purchaseCallback?.Invoke(XBoxIAPStatus.ServerError, null);
                    return;

                default:
                    // Не определённая ошибка
                    purchaseCallback?.Invoke(XBoxIAPStatus.UnDefined, null);
                    return;
            }
        }
        else
            // Вы уже купили это приложение и имеете полностью лицензированную версию
            purchaseCallback?.Invoke(XBoxIAPStatus.LicenseFull, null);
#else
        purchaseCallback?.Invoke(XBoxIAPStatus.NotXBoxPlatform, null);
#endif
#pragma warning restore 1998
    }