/// <summary>
        /// Forces an email to be sent to the registered email address for the user's account,
        /// with a link allowing the user to change the password
        /// </summary>
        /// <see cref="https://docs.microsoft.com/ru-ru/rest/api/playfab/client/account-management/sendaccountrecoveryemail?view=playfab-rest"/>
        /// <param name="email">User email address attached to their account.</param>
        /// <param name="onSuccess">Success operation callback.</param>
        /// <param name="onError">Failed operation callback.</param>
        /// <seealso cref="Registration"/>
        /// <seealso cref="SignIn"/>
        public void ResetPassword(string email, [NotNull] Action onSuccess, [CanBeNull] Action <Error> onError = null)
        {
            var url       = PlayfabApi.GetFormattedUrl(URL_PASSWORD_RESET);
            var resetData = new PlayfabUserResetPasswordEntity(email, XsollaSettings.PlayfabTitleId);

            WebRequestHelper.Instance.PostRequest(url, resetData, onSuccess, onError);
        }
        /// <summary>
        /// Registers a new Playfab user account.
        /// </summary>
        /// <see cref="https://docs.microsoft.com/ru-ru/rest/api/playfab/client/authentication/registerplayfabuser?view=playfab-rest"/>
        /// <param name="username">PlayFab username for the account (3-20 characters).</param>
        /// <param name="password">Password for the PlayFab account (6-100 characters).</param>
        /// <param name="email">User email address attached to their account.</param>
        /// <param name="onSuccess">Success operation callback.</param>
        /// <param name="onError">Failed operation callback.</param>
        /// <seealso cref="SignIn"/>
        /// <seealso cref="ResetPassword"/>
        public void Registration(string username, string password, string email,
                                 [NotNull] Action <PlayfabUserRegistrationResponseEntity> onSuccess, [CanBeNull] Action <Error> onError = null
                                 )
        {
            var registrationData =
                new PlayfabUserRegistrationEntity(username, password, email, XsollaSettings.PlayfabTitleId);
            var url = PlayfabApi.GetFormattedUrl(URL_USER_REGISTRATION);

            WebRequestHelper.Instance.PostRequest(url, registrationData, onSuccess, onError);
        }
Esempio n. 3
0
        /// <summary>
        /// Retrieves the specified version of the title's catalog of virtual goods.
        /// </summary>
        /// <see cref="https://docs.microsoft.com/ru-ru/rest/api/playfab/client/title-wide-data-management/getcatalogitems?view=playfab-rest"/>
        /// <param name="onSuccess">Success operation callback.</param>
        /// <param name="onError">Failed operation callback.</param>
        public void GetCatalog([NotNull] Action <CatalogItemsEntity> onSuccess, [CanBeNull] Action <Error> onError = null)
        {
            var url     = PlayfabApi.GetFormattedUrl(URL_CATALOG_GET_ITEMS);
            var headers = new List <WebRequestHeader> {
                PlayfabApi.Instance.GetAuthHeader()
            };

            WebRequestHelper.Instance.PostRequest(url, new CatalogRequestEntity(), headers,
                                                  (CatalogResponseEntity response) => onSuccess?.Invoke(response.data), onError);
        }
Esempio n. 4
0
        /// <summary>
        /// Retrieves the user's current inventory of virtual goods.
        /// </summary>
        /// <see cref="https://docs.microsoft.com/ru-ru/rest/api/playfab/client/player-item-management/getuserinventory?view=playfab-rest"/>
        /// <param name="onSuccess">Success operation callback.</param>
        /// <param name="onError">Failed operation callback.</param>
        public void GetUserInventory([NotNull] Action <UserInventoryEntity> onSuccess,
                                     [CanBeNull] Action <Error> onError = null)
        {
            var url     = PlayfabApi.GetFormattedUrl(URL_INVENTORY_GET_ITEMS);
            var headers = new List <WebRequestHeader> {
                PlayfabApi.Instance.GetAuthHeader()
            };

            WebRequestHelper.Instance.PostRequest(
                url, headers, (InventoryResponseEntity response) => onSuccess?.Invoke(response.data), onError);
        }
        /// <summary>
        /// Creates an order for a item from the title catalog.
        /// </summary>
        /// <see cref="https://docs.microsoft.com/ru-ru/rest/api/playfab/client/player-item-management/startpurchase?view=playfab-rest"/>
        /// <param name="itemId">Unique identifier of the item to purchase.</param>
        /// <param name="onSuccess">Success operation callback.</param>
        /// <param name="onError">Failed operation callback.</param>
        private void StartPurchase(string itemId, [NotNull] Action <StartPurchaseResultEntity> onSuccess,
                                   [CanBeNull] Action <Error> onError = null)
        {
            var url     = PlayfabApi.GetFormattedUrl(URL_START_PURCHASE);
            var headers = new List <WebRequestHeader> {
                PlayfabApi.Instance.GetAuthHeader()
            };

            WebRequestHelper.Instance.PostRequest(
                url, new StartPurchaseRequestEntity(itemId, ITEMS_QUANTITY_FOR_CLOUD_SCRIPT), headers,
                (StartPurchaseResponseEntity response) => onSuccess?.Invoke(response.data), onError);
        }
        /// <summary>
        /// Signs the user into the PlayFab account.
        /// </summary>
        /// <see cref="https://docs.microsoft.com/ru-ru/rest/api/playfab/client/authentication/loginwithplayfab?view=playfab-rest"/>
        /// <param name="username">PlayFab username for the account (3-20 characters).</param>
        /// <param name="password">Password for the PlayFab account (6-100 characters).</param>
        /// <param name="onSuccess">Success operation callback.</param>
        /// <param name="onError">Failed operation callback.</param>
        /// <seealso cref="Registration"/>
        /// <seealso cref="ResetPassword"/>
        public void SignIn(string username, string password,
                           [NotNull] Action <AuthToken.Playfab> onSuccess, [CanBeNull] Action <Error> onError = null)
        {
            var authData = new PlayfabUserAuthEntity(username, password, XsollaSettings.PlayfabTitleId);
            var url      = PlayfabApi.GetFormattedUrl(URL_USER_SIGNIN);

            WebRequestHelper.Instance.PostRequest <PlayfabUserAuthResponseEntity, PlayfabUserAuthEntity>(
                url, authData,
                response =>
            {
                onSuccess?.Invoke(new AuthToken.Playfab(response.SessionTicket, response.TokenExpiration));
            }, onError);
        }
        /// <summary>
        /// Retrieves a purchase along with its current PlayFab status.
        /// </summary>
        /// <see cref="https://docs.microsoft.com/ru-ru/rest/api/playfab/client/player-item-management/getpurchase?view=playfab-rest"/>
        /// <param name="orderId">Purchase order identifier.</param>
        /// <param name="onSuccess">Success operation callback.</param>
        /// <param name="onError">Failed operation callback.</param>
        /// <seealso cref="ItemPurchase"/>
        /// <seealso cref="ItemPurchaseForVirtualCurrency"/>
        public void CheckOrderStatus(string orderId, [NotNull] Action <PurchaseStatusEntity> onSuccess,
                                     [CanBeNull] Action <Error> onError = null)
        {
            var url     = PlayfabApi.GetFormattedUrl(URL_GET_PURCHASE_STATUS);
            var headers = new List <WebRequestHeader> {
                PlayfabApi.Instance.GetAuthHeader()
            };

            WebRequestHelper.Instance.PostRequest(url, new PurchaseStatusRequestEntity {
                OrderId = orderId
            }, headers,
                                                  (PurchaseStatusResponseEntity response) => onSuccess?.Invoke(response.data), onError);
        }
Esempio n. 8
0
        /// <summary>
        /// Consume uses of a consumable item.
        /// </summary>
        /// <remarks>When all uses are consumed, it will be removed from the player's inventory.</remarks>
        /// <see cref="https://docs.microsoft.com/ru-ru/rest/api/playfab/client/player-item-management/consumeitem?view=playfab-rest"/>
        /// <param name="itemInstanceId">Unique instance identifier of the item to be consumed.</param>
        /// <param name="count">Number of uses to consume from the item.</param>
        /// <param name="onSuccess">Success operation callback.</param>
        /// <param name="onError">Failed operation callback.</param>
        public void ConsumeItem(string itemInstanceId, uint count, [NotNull] Action onSuccess,
                                [CanBeNull] Action <Error> onError = null)
        {
            var url     = PlayfabApi.GetFormattedUrl(URL_INVENTORY_ITEM_CONSUME);
            var headers = new List <WebRequestHeader> {
                PlayfabApi.Instance.GetAuthHeader()
            };

            WebRequestHelper.Instance.PostRequest(url, new ConsumeItemRequestEntity
            {
                ItemInstanceId = itemInstanceId,
                ConsumeCount   = count
            }, headers, onSuccess, onError);
        }
        /// <summary>
        /// Buys a single item with virtual currency.
        /// </summary>
        /// <see cref="https://docs.microsoft.com/ru-ru/rest/api/playfab/client/player-item-management/purchaseitem?view=playfab-rest"/>
        /// <param name="itemId">Unique identifier of the item to purchase.</param>
        /// <param name="currency">Virtual currency to use to purchase the item.</param>
        /// <param name="price">Price the client expects to pay for the item.</param>
        /// <param name="onSuccess">Success operation callback.</param>
        /// <param name="onError">Failed operation callback.</param>
        /// <seealso cref="ItemPurchase"/>
        /// <seealso cref="CheckOrderStatus"/>
        public void ItemPurchaseForVirtualCurrency(string itemId, string currency, uint price,
                                                   [NotNull] Action onSuccess, [CanBeNull] Action <Error> onError = null)
        {
            var url     = PlayfabApi.GetFormattedUrl(URL_BUY_ITEM_FOR_VC);
            var headers = new List <WebRequestHeader> {
                PlayfabApi.Instance.GetAuthHeader()
            };

            WebRequestHelper.Instance.PostRequest(url, new PurchaseForVcRequestEntity
            {
                ItemId          = itemId,
                VirtualCurrency = currency,
                Price           = price
            }, headers, onSuccess, onError);
        }
        /// <summary>
        /// Executes a CloudScript function.
        /// This cloud script allows to open purchase url with one item.
        /// </summary>
        /// <see cref="https://docs.microsoft.com/ru-ru/rest/api/playfab/client/server-side-cloud-script/executecloudscript?view=playfab-rest"/>
        /// <param name="itemId">Unique identifier of the item to purchase.</param>
        /// <param name="orderId">Purchase order identifier.</param>
        /// <param name="onSuccess">Success operation callback.</param>
        /// <param name="onError">Failed operation callback.</param>
        private void ExecuteCloudScript(string itemId, string orderId,
                                        [NotNull] Action <CloudScriptResultEntity> onSuccess, [CanBeNull] Action <Error> onError = null)
        {
            var url     = PlayfabApi.GetFormattedUrl(URL_CLOUD_SCRIPT);
            var headers = new List <WebRequestHeader> {
                PlayfabApi.Instance.GetAuthHeader()
            };

            WebRequestHelper.Instance.PostRequest(url, new CloudScriptRequestEntity
            {
                FunctionName      = CLOUD_SCRIPT_DEMO_METHOD,
                FunctionParameter = new CloudScriptRequestEntity.CloudScriptArgs
                {
                    sku     = itemId,
                    amount  = ITEMS_QUANTITY_FOR_CLOUD_SCRIPT,
                    orderId = orderId,
                    sdkTag  = PaymentsHelper.GetAdditionalInformation("playfab"),
                    theme   = PaystationThemeHelper.ConvertToSettings(XsollaSettings.PaystationTheme),
                    sandbox = XsollaSettings.IsSandbox
                }
            }, headers, (CloudScriptResponseEntity response) => onSuccess?.Invoke(response.data), onError);
        }