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 + '¤cy=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)
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