public CheckoutSessionResponse CompleteCheckoutSession(string checkoutSessionId, decimal amount) { var request = new CompleteCheckoutSessionRequest(amount, Currency.JPY); var client = new WebStoreClient(_config); return(client.CompleteCheckoutSession(checkoutSessionId, request)); }
public async Task QuerySearchTest() { using (var client = new WebStoreClient()) { var catalogs = await client.QuerySearch("thimb"); CollectionAssert.IsNotEmpty(catalogs); var catalog = catalogs[0]; Assert.IsNotEmpty(catalog.productSlug); Assert.IsNotEmpty(catalog.title); } }
public async Task GetProductInfoTest() { using (var client = new WebStoreClient()) { var catalogs = await client.QuerySearch("thimb"); var product = await client.GetProductInfo(catalogs[0].productSlug); Assert.IsNotEmpty(product.@namespace); Assert.IsNotEmpty(product.pages[0].data.hero.backgroundImageUrl); Assert.IsNotEmpty(product.pages[0].data.about.description); Assert.IsNotEmpty(product.pages[0].data.about.developerAttribution); } }
public CheckoutSessionResponse UpdateCheckoutSession(string checkoutSessionId, string merchantReferenceId, decimal amount, string checkoutResultReturnUrl) { var request = new UpdateCheckoutSessionRequest(); request.WebCheckoutDetails.CheckoutResultReturnUrl = checkoutResultReturnUrl; request.PaymentDetails.ChargeAmount.Amount = amount; request.PaymentDetails.ChargeAmount.CurrencyCode = Amazon.Pay.API.Types.Currency.JPY; request.PaymentDetails.PaymentIntent = PaymentIntent.Authorize; request.MerchantMetadata.MerchantReferenceId = merchantReferenceId; request.MerchantMetadata.MerchantStoreName = "AMAZONPAY SAMPLE SHOP"; request.MerchantMetadata.NoteToBuyer = "THANK YOU!"; var client = new WebStoreClient(_config); return(client.UpdateCheckoutSession(checkoutSessionId, request)); }
public override GameMetadata GetMetadata(Game game) { var gameInfo = new GameInfo() { Links = new List <Link>() }; var metadata = new GameMetadata() { GameInfo = gameInfo }; using (var client = new WebStoreClient()) { var catalogs = client.QuerySearch(game.Name).GetAwaiter().GetResult(); if (catalogs.HasItems()) { var catalog = catalogs.FirstOrDefault(a => a.title.Equals(game.Name, StringComparison.InvariantCultureIgnoreCase)); if (catalog == null) { catalog = catalogs[0]; } var product = client.GetProductInfo(catalog.productSlug).GetAwaiter().GetResult(); if (product.pages.HasItems()) { var page = product.pages.FirstOrDefault(a => a.type is string type && type == "productHome"); if (page == null) { page = product.pages[0]; } gameInfo.Developers = page.data.about.developerAttribution?. Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries). Select(a => a.Trim()).ToList(); gameInfo.Publishers = page.data.about.publisherAttribution?. Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries). Select(a => a.Trim()).ToList(); metadata.BackgroundImage = new MetadataFile(page.data.hero.backgroundImageUrl); gameInfo.Links.Add(new Link( library.PlayniteApi.Resources.GetString("LOCCommonLinksStorePage"), "https://www.epicgames.com/store/en-US/product/" + catalog.productSlug)); if (page.data.socialLinks.HasItems()) { var links = page.data.socialLinks. Where(a => a.Key.StartsWith("link") && !a.Value.IsNullOrEmpty()). Select(a => new Link(a.Key.Replace("link", ""), a.Value)).ToList(); if (links.HasItems()) { gameInfo.Links.AddRange(links); } } if (!page.data.about.description.IsNullOrEmpty()) { gameInfo.Description = Markup.MarkdownToHtml(page.data.about.description); } } } } gameInfo.Links.Add(new Link("PCGamingWiki", @"http://pcgamingwiki.com/w/index.php?search=" + game.Name)); // There's not icon available on Epic servers so we will load one from EXE if (game.IsInstalled && string.IsNullOrEmpty(game.Icon)) { var manifest = EpicLauncher.GetInstalledManifests().FirstOrDefault(a => a.AppName == game.GameId); if (manifest != null) { var exePath = Path.Combine(manifest.InstallLocation, manifest.LaunchExecutable); if (File.Exists(exePath)) { using (var ms = new MemoryStream()) { if (IconExtractor.ExtractMainIconFromFile(exePath, ms)) { var iconName = Guid.NewGuid() + ".ico"; metadata.Icon = new MetadataFile(iconName, ms.ToArray()); } } } } } return(metadata); }
private OrderAddressViewModel GetAddress(OrderAddress address, IEnumerable<Country> countries, WebStoreClient client) { if (address != null) { IEnumerable<Region> regions = address.RegionId.HasValue ? client.StoreClient.GetRegions(address.CountryId) : Enumerable.Empty<Region>(); return new OrderAddressViewModel { City = address.CityName, Company = address.CompanyName, CountryName = countries.Where(c => c.CountryId == address.CountryId).Select(c => c.Name).FirstOrDefault(), DigiCode = address.DigiCode, Email = address.EmailAddress, FaxNumber = address.FaxNumber, FirstName = address.FirstName, Floor = address.FloorNumber, LastName = address.LastName, Line1 = address.Address1, Line2 = address.Address2, Line3 = address.Address3, MiddleName = address.MiddleName, MobileNumber = address.MobileNumber, Name = address.Name, PhoneNumber = address.PhoneNumber, RegionName = regions.Where(r => r.RegionId == address.RegionId).Select(r => r.Name).FirstOrDefault(), ZipCode = address.ZipCode }; } return null; }
private WebStoreClient NewClient(Guid storeId, String servicesPath, Boolean contextualize) { WebStoreClient client = new WebStoreClient(new WebStoreClientSettings(storeId, new Uri(servicesPath))); if (contextualize) { client.Settings.IsAnonymous = this._orchardServices.WorkContext.CurrentUser == null; client.Settings.UserName = client.Settings.IsAnonymous ? this.AnonymousUserName : this._orchardServices.WorkContext.CurrentUser.UserName; client.Context = new WebStoreClientContext { CountryId = this._currentCountryId, RegionId = this._currentRegionId, CurrencyId = this._currentCurrencyId }; Culture culture = this.GetCorrespondingCulture(this.StoreContext); if (culture != null) { client.Context.CultureId = culture.LCID; } } return client; }
public CheckoutSessionResponse GetCheckoutSession(string checkoutSessionId) { var client = new WebStoreClient(_config); return(client.GetCheckoutSession(checkoutSessionId)); }
public string CreateButtonSignature(CreateCheckoutSessionRequest request) { var client = new WebStoreClient(_config); return(client.GenerateButtonSignature(request)); }
public void CanInstantiateWebStoreClient() { var client = new WebStoreClient(payConfig); Assert.NotNull(client); }
public override GameMetadata GetMetadata(Game game) { var gameInfo = new GameInfo() { Links = new List <Link>() }; var metadata = new GameMetadata() { GameInfo = gameInfo }; using (var client = new WebStoreClient()) { var catalogs = client.QuerySearch(game.Name).GetAwaiter().GetResult(); if (catalogs.HasItems()) { var product = client.GetProductInfo(catalogs[0].productSlug).GetAwaiter().GetResult(); if (product.pages.HasItems()) { var page = product.pages[0]; gameInfo.Description = page.data.about.description; gameInfo.Developers = new List <string>() { page.data.about.developerAttribution }; metadata.BackgroundImage = new MetadataFile(page.data.hero.backgroundImageUrl); gameInfo.Links.Add(new Link( library.PlayniteApi.Resources.GetString("LOCCommonLinksStorePage"), "https://www.epicgames.com/store/en-US/product/" + catalogs[0].productSlug)); if (page.data.socialLinks.HasItems()) { var links = page.data.socialLinks. Where(a => a.Key.StartsWith("link") && !a.Value.IsNullOrEmpty()). Select(a => new Link(a.Key.Replace("link", ""), a.Value)).ToList(); if (links.HasItems()) { gameInfo.Links.AddRange(links); } } if (!gameInfo.Description.IsNullOrEmpty()) { gameInfo.Description = gameInfo.Description.Replace("\n", "\n<br>"); } } } } gameInfo.Links.Add(new Link("PCGamingWiki", @"http://pcgamingwiki.com/w/index.php?search=" + game.Name)); // There's not icon available on Epic servers so we will load one from EXE if (game.IsInstalled && string.IsNullOrEmpty(game.Icon)) { var playAction = api.ExpandGameVariables(game, game.PlayAction); var executable = string.Empty; if (File.Exists(playAction.Path)) { executable = playAction.Path; } else if (!string.IsNullOrEmpty(playAction.WorkingDir)) { executable = Path.Combine(playAction.WorkingDir, playAction.Path); } var exeIcon = IconExtension.ExtractIconFromExe(executable, true); if (exeIcon != null) { var iconName = Guid.NewGuid() + ".png"; metadata.Icon = new MetadataFile(iconName, exeIcon.ToByteArray(System.Drawing.Imaging.ImageFormat.Png)); } } return(metadata); }