Beispiel #1
0
        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);
     }
 }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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;
 }
Beispiel #8
0
        public CheckoutSessionResponse GetCheckoutSession(string checkoutSessionId)
        {
            var client = new WebStoreClient(_config);

            return(client.GetCheckoutSession(checkoutSessionId));
        }
Beispiel #9
0
        public string CreateButtonSignature(CreateCheckoutSessionRequest request)
        {
            var client = new WebStoreClient(_config);

            return(client.GenerateButtonSignature(request));
        }
Beispiel #10
0
        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);
        }