public void AccountCheckoutTest() { AccountCheckoutSettings settings = new AccountCheckoutSettings() { UserPassword = "******", UserLogin = "******", UserCcv2 = "123", ProductToBuy = new FootsitesProduct(new ChampsSportsBot() , "yle", "https://www.champssports.com/product/model:283446/sku:A7097514", 0, "", "A7097514") { Sku = "A7097514", Model = "283446", }, BuyOptions = new ProductBuyOptions() { Size = "S" } }; ChampsSportsBot bot = new ChampsSportsBot() { DelayInSecond = 5 }; bot.Start(proxy: "162.217.145.90:2036"); bot.AccountCheckout(settings, CancellationToken.None); }
protected override void FinalCheckout(AccountCheckoutSettings settings, CancellationToken token) { Browser.ActiveTab.QueueScriptCall($@"document.getElementById(""payMethodPaneStoredCCCVV"").value = ""{settings.UserCcv2}""").WaitOne(); Debug.WriteLine(Browser.ActiveTab.LastJSException); Task.Delay(200, token).Wait(token); Browser.ActiveTab.QueueScriptCall(@"document.getElementById(""orderSubmit"").click()").WaitOne(); }
/// <summary> /// This method adds product to cart /// </summary> /// <param name="driver"> driver from which scripts are called </param> /// <param name="settings"> Checkout settings </param> /// <param name="token"></param> private void AddToCart(WebView driver, AccountCheckoutSettings settings, CancellationToken token) { //Console.WriteLine(settings); var a = settings.ProductToBuy.Url; driver.LoadUrlAndWait(settings.ProductToBuy.Url); driver.EvalScript(AjaxGetRequest($@"'https://www.champssports.com/pdp/gateway?requestKey=' + requestKey + '&action=add&qty={settings.BuyOptions.Quantity}&sku={settings.ProductToBuy.Sku}&size={settings.BuyOptions.Size}&fulfillmentType=SHIP_TO_HOME&storeNumber=00000&storeCostOfGoods=0.00&_=1537363416933'")); //https://www.eastbay.com/pdp/gateway?requestKey=DF4D9B7FFB6EiB7D&action=add&qty=1&sku=31498357&size=M&fulfillmentType=SHIP_TO_HOME&storeNumber=0&_=1537373905543 Task.Delay(2000, token).Wait(token); }
/// <summary> /// This method adds product to cart /// </summary> /// <param name="settings"> Checkout settings </param> /// <param name="token"></param> protected override void AddToCart(AccountCheckoutSettings settings, CancellationToken token) { var script = AjaxGetRequest($@"'https://www.eastbay.com/pdp/gateway?requestKey=' + requestKey + '&action=add&qty={settings.BuyOptions.Quantity}&sku={settings.ProductToBuy.Sku}&size={ settings.BuyOptions.Size }&fulfillmentType=SHIP_TO_HOME&storeNumber=0&_=' + date"); Browser.ActiveTab.QueueScriptCall(script).WaitOne(); Task.Delay(200, token).Wait(token); }
private void Button_Click(object sender, RoutedEventArgs e) { int.TryParse(tbx_Quantity.Text, out int quantity); if (quantity <= 0) { MessageBox.Show("Incorrect Quantity typed", "Error", MessageBoxButton.OK, MessageBoxImage.Error, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly); return; } AccountCheckoutSettings settings; try { settings = new AccountCheckoutSettings() { UserLogin = tbx_UserName.Text, UserPassword = tbx_Password.Text, ProductToBuy = (FootsitesProduct)cbx_Products.SelectedValue, BuyOptions = new ProductBuyOptions() { Quantity = quantity, Size = cbx_Size.SelectedValue.ToString() }, UserCcv2 = tbx_CCV2.Text }; } catch (Exception) { MessageBox.Show("All required field is not filled correctly", "Error while adding task", MessageBoxButton.OK, MessageBoxImage.Warning); return; } CheckoutTask task = new CheckoutTask() { CheckoutInfo = settings, MonitoringTokenSource = CancellationTokenSource.CreateLinkedTokenSource(AppData.ApplicationGlobalTokenSource.Token), }; AppData.Session.CurrentTasks.Add(task); task.StartMonitoring(); MessageBox.Show("Checkout Task Added", "Success", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK, MessageBoxOptions.DefaultDesktopOnly); }
public virtual void AccountCheckout(AccountCheckoutSettings settings, CancellationToken token) { Logger.Instance.WriteVerboseLog($"Checkout process ({settings.ProductToBuy.Name}) started", Color.DarkOrange); Browser.NewTab("MainTab"); Logger.Instance.WriteVerboseLog($"Signing in (username={settings.UserLogin}..."); if (!Login(settings.UserLogin, settings.UserPassword, token)) { Logger.Instance.WriteErrorLog("Wrong password"); } Logger.Instance.WriteVerboseLog($"Login successful!", Color.DarkOliveGreen); Logger.Instance.WriteVerboseLog($"Clearing cart...", Color.Black); RemoveAllItems(token); Logger.Instance.WriteVerboseLog($"Cart cleared!", Color.DarkOliveGreen); Logger.Instance.WriteVerboseLog($"Preparing for checkout...", Color.Black); FootsitesProduct arbitraryProduct = GetArbitraryItem(token); Browser.ActiveTab.LoadUrlAndWait(arbitraryProduct.Url); Task.Delay(4000, token).Wait(token); AddArbitraryItem(arbitraryProduct, token); Task.Delay(2000, token).Wait(token); GoToCheckoutPage(token); Browser.NewTab("Cart"); RemoveArbitraryItem(arbitraryProduct, token); Browser.ActiveTab.LoadUrlAndWait(settings.ProductToBuy.Url); Task.Delay(4000, token).Wait(token); Logger.Instance.WriteVerboseLog("Preparation Done!", Color.DarkOliveGreen); var secondsLeft = (settings.ProductToBuy.ReleaseTime - DateTime.UtcNow)?.Seconds; Logger.Instance.WriteVerboseLog($"Waiting product to be released (about {secondsLeft} seconds left..."); WaitBeforeRelease(settings.ProductToBuy.Model, token); Logger.Instance.WriteVerboseLog($"Product release detected!", Color.DarkOliveGreen); Logger.Instance.WriteVerboseLog("Adding product to cart..", Color.Black); AddToCart(settings, token); Logger.Instance.WriteVerboseLog("Product successfully added to cart!", Color.DarkOliveGreen); Logger.Instance.WriteVerboseLog("Checkout product...", Color.Black); Browser.SwitchToTab(0).Reload().WaitOne(); FinalCheckout(settings, token); Logger.Instance.WriteVerboseLog("CHECKOUT SUCCESS!!!", Color.DarkGreen); Logger.Instance.WriteVerboseLog("Signing out from account..."); LogOut(token); Logger.Instance.WriteVerboseLog("Sign out success!", Color.Green); }
public override void AccountCheckout(AccountCheckoutSettings settings, CancellationToken token) { Browser.NewTab("MainTab"); if (!Login("*****@*****.**", "giorgi121", token)) { Logger.Instance.WriteErrorLog("Wrong password"); return; } FootsitesProduct arbitraryProduct = GetArbitraryItem(token); var cartTab = Browser.NewTab("Cart"); AddArbitraryItemToCart(arbitraryProduct, token); Task.Delay(3 * 1000, token).Wait(token); AddToCart(Browser.ActiveTab, settings, token); Task.Delay(3 * 1000).Wait(token); RemoveArbitraryItem(arbitraryProduct, token); Task.Delay(DelayInSecond * 1000, token).Wait(token); Browser.SwitchToTab(0).Reload().WaitOne(); Task.Delay(10 * 1000, token).Wait(token); }
protected override void FinalCheckout(AccountCheckoutSettings settings, CancellationToken token) { throw new NotImplementedException(); }
public override void AccountCheckout(AccountCheckoutSettings settings, CancellationToken token) { }
protected abstract void FinalCheckout(AccountCheckoutSettings settings, CancellationToken token);
protected abstract void AddToCart(AccountCheckoutSettings settings, CancellationToken token);