コード例 #1
0
def creat_bill_qiwi(chat_id, callback_id, message_id, sum, name_good, amount):
    #if dop.amount_of_goods(name_good) <= int(amount): bot.answer_callback_query(callback_query_id=callback_id, show_alert=True, text='Выберите меньшее число товаров к покупке')
    #el
    if dop.payments_checkvkl() == None:
        bot.answer_callback_query(
            callback_query_id=callback_id,
            show_alert=True,
            text='Принять деньги на киви кошелёк в данный момент невозможно!')
    else:
        phone, token = dop.get_qiwidata()
        api = SimpleQIWI.QApi(token=token, phone=phone)
        comm = 'bill|' + dop.generator_pw(10) + '|'
        with open('data/Temp/' + str(chat_id) + '.txt', 'w',
                  encoding='utf-8') as f:
            f.write(str(phone) + '\n')
            f.write(token + '\n')
            f.write(str(amount) + '\n')
            f.write(str(sum) + '\n')
            f.write(comm)
        key = telebot.types.InlineKeyboardMarkup()
        rurl = 'https://qiwi.com/payment/form/99?extra%5B%27account%27%5D=' + str(
            phone
        ) + '&amountInteger=' + str(
            sum
        ) + '&amountFraction=0&extra%5B%27comment%27%5D=' + comm + '&currency=643&blocked[0]=account&blocked[1]=sum&blocked[2]=comment'
        url_button = telebot.types.InlineKeyboardButton(
            "Оплатить в браузере", rurl)
        b1 = telebot.types.InlineKeyboardButton(
            text='Проверить оплату', callback_data='Проверить оплату')
        key.add(b1, url_button)
        key.add(
            telebot.types.InlineKeyboardButton(
                text='Вернуться в начало', callback_data='Вернуться в начало'))
        try:
            bot.edit_message_text(
                chat_id=chat_id,
                message_id=message_id,
                text='Чтобы купить ' + name_good + ' количеством ' +
                str(amount) + '\nНадо пополнить qiwi кошелек `' + str(phone) +
                '` на сумму `' + str(sum) +
                '` *₽*\nПри переводе обязательно укажите комментарий\n `' +
                comm + '`\nБез него платёж не зачислится.',
                parse_mode='Markdown',
                reply_markup=key)
            #bot.send_message(message.chat.id, '`' + comm + '`', parse_mode='Markdown', reply_markup=key)
            #bot.send_message(chat_id, '`' + comm + '`')
        except:
            pass
        he_client.append(chat_id)
コード例 #2
0
def inline(callback):
    the_goods = dop.get_goods()
    if callback.message.chat.id in in_admin:
        adminka.ad_inline(callback.data, callback.message.chat.id,
                          callback.message.message_id)

    elif callback.data == 'Перейти к каталогу товаров':
        con = sqlite3.connect(files.main_db)
        cursor = con.cursor()
        cursor.execute("SELECT name, price FROM goods;")
        key = telebot.types.InlineKeyboardMarkup()
        for name, price in cursor.fetchall():
            key.add(
                telebot.types.InlineKeyboardButton(text=name,
                                                   callback_data=name))
        key.add(
            telebot.types.InlineKeyboardButton(
                text='Вернуться в начало', callback_data='Вернуться в начало'))
        con.close()

        if dop.get_productcatalog() == None:
            bot.answer_callback_query(
                callback_query_id=callback.id,
                show_alert=True,
                text='На данный момент в боте не было создано ни одной позиции'
            )
        else:
            try:
                bot.edit_message_text(chat_id=callback.message.chat.id,
                                      message_id=callback.message.message_id,
                                      text=dop.get_productcatalog(),
                                      reply_markup=key,
                                      parse_mode='Markdown')
            except:
                pass

    elif callback.data in the_goods:
        with open('/home/tgshop/shop/data/hTemp/' +
                  str(callback.message.chat.id) + 'good_name.txt',
                  'w',
                  encoding='utf-8') as f:
            f.write(callback.data)
        key = telebot.types.InlineKeyboardMarkup()
        key.add(
            telebot.types.InlineKeyboardButton(text='Купить',
                                               callback_data='Купить'))
        key.add(
            telebot.types.InlineKeyboardButton(
                text='Вернуться в начало', callback_data='Вернуться в начало'))
        try:
            bot.edit_message_text(chat_id=callback.message.chat.id,
                                  message_id=callback.message.message_id,
                                  text=dop.get_description(callback.data),
                                  reply_markup=key)
        except:
            pass

    elif callback.data == 'Вернуться в начало':
        if callback.message.chat.username:
            if dop.get_sost(callback.message.chat.id) is True:
                with shelve.open(files.sost_bd) as bd:
                    del bd[str(callback.message.chat.id)]
            key = telebot.types.InlineKeyboardMarkup()
            key.add(
                telebot.types.InlineKeyboardButton(
                    text='Перейти к каталогу товаров',
                    callback_data='Перейти к каталогу товаров'))
            with shelve.open(files.bot_message_bd) as bd:
                start_message = bd['start']
            start_message = start_message.replace(
                'username', callback.message.chat.username)
            start_message = start_message.replace(
                'name', callback.message.from_user.first_name)
            try:
                bot.edit_message_text(chat_id=callback.message.chat.id,
                                      message_id=callback.message.message_id,
                                      text=start_message,
                                      reply_markup=key)
            except:
                pass
        elif not callback.message.chat.username:
            with shelve.open(files.bot_message_bd) as bd:
                start_message = bd['userfalse']
            start_message = start_message.replace(
                'uname', callback.message.from_user.first_name)
            bot.send_message(callback.message.chat.id,
                             start_message,
                             parse_mode='Markdown')

    elif callback.data == 'Купить':
        with open('/home/tgshop/shop/data/hTemp/' +
                  str(callback.message.chat.id) + 'good_name.txt',
                  encoding='utf-8') as f:
            name_good = f.read()
        if dop.amount_of_goods(name_good) == 0:
            bot.answer_callback_query(
                callback_query_id=callback.id,
                show_alert=True,
                text='В данный момент недоступно к покупке')
        elif dop.payments_checkvkl() == None:
            bot.answer_callback_query(callback_query_id=callback.id,
                                      show_alert=True,
                                      text='Оплата на данный момент отключена')
        else:
            key = telebot.types.InlineKeyboardMarkup()
            key.add(
                telebot.types.InlineKeyboardButton(
                    text='Вернуться в начало',
                    callback_data='Вернуться в начало'))
            try:
                bot.edit_message_text(
                    chat_id=callback.message.chat.id,
                    message_id=callback.message.message_id,
                    text=
                    'Введите *количество* товаров к покупке\n*Минимальное* количество к покупке: '
                    + str(dop.get_minimum(name_good)) +
                    '\n*Максимальное* доступное: ' +
                    str(dop.amount_of_goods(name_good)),
                    reply_markup=key,
                    parse_mode='Markdown')
            except:
                pass
            with shelve.open(files.sost_bd) as bd:
                bd[str(callback.message.chat.id)] = 22

    elif callback.data == 'btc' or callback.data == 'Qiwi':
        if callback.data == 'Qiwi':
            with open('/home/tgshop/shop/data/hTemp/' +
                      str(callback.message.chat.id) + 'good_name.txt',
                      encoding='utf-8') as f:
                name_good = f.read()
            amount = dop.normal_read_line(
                '/home/tgshop/shop/data/hTemp/' +
                str(callback.message.chat.id) + '.txt', 0)
            sum = dop.normal_read_line(
                '/home/tgshop/shop/data/hTemp/' +
                str(callback.message.chat.id) + '.txt', 1)

            payments.creat_bill_qiwi(callback.message.chat.id, callback.id,
                                     callback.message.message_id, sum,
                                     name_good, amount)
        elif callback.data == 'btc':
            sum = dop.normal_read_line(
                '/home/tgshop/shop/data/hTemp/' +
                str(callback.message.chat.id) + '.txt', 1)
            with open('/home/tgshop/shop/data/hTemp/' +
                      str(callback.message.chat.id) + 'good_name.txt',
                      encoding='utf-8') as f:
                name_good = f.read()
            amount = dop.normal_read_line(
                '/home/tgshop/shop/data/hTemp/' +
                str(callback.message.chat.id) + '.txt', 0)
            if int(sum) < 40:
                bot.answer_callback_query(
                    callback_query_id=callback.id,
                    show_alert=True,
                    text='Сумму менее 100 рублей оплатить в btc невозможно!')

            else:
                payments.creat_bill_btc(callback.message.chat.id, callback.id,
                                        callback.message.message_id, sum,
                                        name_good, amount)
    elif callback.data == 'Проверить оплату':
        payments.check_oplata_qiwi(callback.message.chat.id,
                                   callback.from_user.username, callback.id,
                                   callback.message.from_user.first_name)

    elif callback.data == 'Проверить оплату btc':
        payments.check_oplata_btc(callback.message.chat.id,
                                  callback.from_user.username, callback.id,
                                  callback.message.from_user.first_name)

    elif dop.get_sost(callback.message.chat.id) is True:
        with shelve.open(files.sost_bd) as bd:
            sost_num = bd[str(callback.message.chat.id)]
        if sost_num == 12: pass