/// <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); }
/// <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); }
/// <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); }
/// <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); }