예제 #1
0
        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);
        }
예제 #2
0
        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;
            }
        }