public async Task <string> Method(int IdPeop, string FirstName, string LastName, string[] AccId) { var client = new MongoClient("mongodb://localhost"); var database = client.GetDatabase("GamesAcc"); var collection = database.GetCollection <PaymentsModel>("Payments"); MainWork costAcc = new MainWork(); decimal price = costAcc.CostsID(Program.id).GetAwaiter().GetResult(); //Qiwi.BillPayments.Model.Out.BillResponse var newPayment = clientQiwi.CreateBill( info: new CreateBillInfo { BillId = Guid.NewGuid().ToString(), Amount = new MoneyAmount { ValueDecimal = price, CurrencyEnum = CurrencyEnum.Rub }, Comment = "comment", ExpirationDateTime = DateTime.Now.AddDays(45), Customer = new Customer { Email = "*****@*****.**", Account = Guid.NewGuid().ToString(), Phone = "79265064230" } }, customFields: new CustomFields { ThemeCode = "кодСтиля" } ); BDwithPay.UserBillId = newPayment.BillId.ToString(); //var infopayment = clientQiwi.GetBillInfo(newPayment.BillId); var model = new PaymentsModel { Id = ObjectId.GenerateNewId(), FirstName = FirstName, LastName = LastName, IDPeop = IdPeop, Url = newPayment.PayUrl.ToString(), Status = newPayment.Status.ValueString.ToString(), BillId = newPayment.BillId.ToString(), BuyAcc = AccId }; await collection.InsertOneAsync(model); string url = newPayment.PayUrl.ToString(); return(url); }
private async static void BotClient_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { var buttonText = e.CallbackQuery.Data; string name = $"{e.CallbackQuery.From.FirstName}"; Console.WriteLine($"{name} нажал на кнопку {buttonText} ПО времени {DateTime.Now}"); MainWork mongoDB = new MainWork(); switch (buttonText) { case "NORD": var words1 = mongoDB.GetInformCS("NORD").Result; if (words1.Count > 0) { foreach (string word in words1) { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, word); } await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Для покупки введите /buy и ID через ',' без пробелов"); } else { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Аккаунтов в данной категории нет!"); } break; case "IPVANISH": var words = mongoDB.GetInformCS("IPVANISH").Result; if (words.Count > 0) { foreach (string word in words) { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, word); } await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Для покупки введите /buy и ID через ',' без пробелов"); } else { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Аккаунтов в данной категории нет!"); } break; case "ZETMATE": var words2 = mongoDB.GetInformCS("ZETMATE").Result; if (words2.Count > 0) { foreach (string word in words2) { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, word); } await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Для покупки введите /buy и ID через ',' без пробелов"); } else { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Аккаунтов в данной категории нет!"); } break; case "HMAPRO": var words3 = mongoDB.GetInformCS("HMAPRO").Result; if (words3.Count > 0) { foreach (string word in words3) { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, word); } await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Для покупки введите /buy и ID через ',' без пробелов"); } else { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Аккаунтов в данной категории нет!"); } break; case "WINDSCRIBE": var words4 = mongoDB.GetInformCS("WINDSCRIBE").Result; if (words4.Count > 0) { foreach (string word in words4) { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, word); } await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Для покупки введите /buy и ID через ',' без пробелов"); } else { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Аккаунтов в данной категории нет!"); } break; case "TUNNELBEAR": var words5 = mongoDB.GetInformCS("TUNNELBEAR").Result; if (words5.Count > 0) { foreach (string word in words5) { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, word); } await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Для покупки введите /buy и ID через ',' без пробелов"); } else { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Аккаунтов в данной категории нет!"); } break; case "VYPRVPN": var words6 = mongoDB.GetInformCS("VYPRVPN").Result; if (words6.Count > 0) { foreach (string word in words6) { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, word); } await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Для покупки введите /buy и ID через ',' без пробелов"); } else { await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, "Аккаунтов в данной категории нет!"); } break; } try { await botClient.AnswerCallbackQueryAsync(e.CallbackQuery.Id, $"Вы нажали кнопку {buttonText}"); } catch { Console.WriteLine("Был возможный краш!"); } }
private async static void BotClient_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e) { var message = e.Message; if (message.Type != MessageType.Text) { return; } Console.WriteLine($"{message.From.FirstName} отправил сообщение: {message.Text} ПО времени {DateTime.Now}"); if (message.Text.StartsWith("/buy")) { //////////////////////////PAY////////////////////// id = message.Text.Replace("/buy", string.Empty).TrimStart().Split(','); MainWork newWork = new MainWork(); BDwithPay pay = new BDwithPay(); var boolInfo = newWork.CheckInDBAcc(id).GetAwaiter().GetResult(); if (boolInfo.All(x => x == true)) { var cost = newWork.CostsID(id); // цена акков по ID int IdPeop = e.Message.From.Id; // ID человека string FirstName = e.Message.From.FirstName; // Ник юзера string LastName = e.Message.From.LastName; // ник юзера string url = pay.Method(IdPeop, FirstName, LastName, id).GetAwaiter().GetResult(); //сделать проверку на наличие акков await botClient.SendTextMessageAsync(e.Message.Chat, "На покупку у вас будет 5 минут, после ваш счет будет отменен"); await botClient.SendTextMessageAsync(e.Message.Chat, url); if (pay.UpdatePayments(id).GetAwaiter().GetResult() == true) { var accsForGive = newWork.BuyId(id).GetAwaiter().GetResult(); foreach (var acc in accsForGive) { await botClient.SendTextMessageAsync(e.Message.Chat, acc); } await botClient.SendTextMessageAsync(e.Message.Chat, "Спасибо за покупку, покупайте еще!"); Console.WriteLine($"Была совершена покупка: FirstName: {e.Message.From.FirstName} || LastName: {e.Message.From.LastName}"); } else { await botClient.SendTextMessageAsync(e.Message.Chat, "Вы не успели оплатить. Ваша заявка отклонена!"); Console.WriteLine($"Не успел оплатить за аккаунты: FirstName:{e.Message.From.FirstName} LastName:{e.Message.From.LastName}"); } } else { await botClient.SendTextMessageAsync(e.Message.Chat, "Один или несколько аккаунтов из вашего списка уже КУПЛЕНЫ либо вы ошиблись с вводом ID!"); Console.WriteLine($"Нехватка Акков/ОшибкаID:\nFirstName:{e.Message.From.FirstName}\nLastName:{e.Message.From.LastName} "); } //////////////////////////PAY////////////////////// } switch (message.Text) { case "/start": try { string commands = "Создатель TG: /creator \r\nПокупка: /menu \r\nДополнительная информация: /info"; var replyKeyBoard = new ReplyKeyboardMarkup(new[] { new[] { new KeyboardButton("MENU") } }) { ResizeKeyboard = true }; await botClient.SendTextMessageAsync(e.Message.Chat, commands, replyMarkup : replyKeyBoard); } catch { Console.WriteLine("Был возможный краш!"); } break; case "/menu": case "MENU": try { await botClient.SendTextMessageAsync(e.Message.Chat, "VPN сервисы:"); var inlineKeyBoard = new InlineKeyboardMarkup(new[] { new[] { InlineKeyboardButton.WithCallbackData("NORD") }, new[] { InlineKeyboardButton.WithCallbackData("IPVANISH") }, new[] { InlineKeyboardButton.WithCallbackData("ZETMATE") }, new[] { InlineKeyboardButton.WithCallbackData("HMAPRO") }, new[] { InlineKeyboardButton.WithCallbackData("WINDSCRIBE") }, new[] { InlineKeyboardButton.WithCallbackData("TUNNELBEAR") }, new[] { InlineKeyboardButton.WithCallbackData("VYPRVPN") } }); await botClient.SendTextMessageAsync(e.Message.Chat, "Выберите что хотели бы купить", replyMarkup : inlineKeyBoard); } catch { Console.WriteLine("Был возможный краш!"); } break; case "/creator": try { await botClient.SendTextMessageAsync(e.Message.Chat, "@user1771"); } catch { Console.WriteLine("Был возможный краш!"); } break; case "/info": try { await botClient.SendTextMessageAsync(e.Message.Chat, "Для поддержки обращаться - @user1771"); } catch { Console.WriteLine("Был возможный краш!"); } break; } }