Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+3

Crypto bot api telebot

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
 APITOKEN = ''  # Токен вашего бота 
bot = telebot.TeleBot(APITOKEN) 
 
 
CRYPTOPAYPROVIDER_TOKEN = ''  # Токен провайдера CryptoPay 
 
 
@bot.messagehandler(commands=['start']) 
def start(message): 
    bot.sendmessage(message.chat.id, "Добро пожаловать! Пожалуйста, введите сумму в USDT для создания счета.") 
 
 
@bot.messagehandler(func=lambda message: message.text.replace('.', '', 1).isdigit()) 
def createinvoice(message): 
    try: 
        amount = float(message.text)  # Преобразуем текст в число 
        if amount <= 0: 
            raise ValueError("Сумма должна быть положительной.") 
 
 
    invoice_payload = 'unique_invoice_payload'  # Уникальный идентификатор инвойса 
 
    # Создание инвойса 
    bot.send_invoice( 
        chat_id=message.chat.id, 
        title='Оплата в USDT', 
        description='Оплата за услуги.', 
        provider_token=CRYPTO_PAY_PROVIDER_TOKEN,  # Токен провайдера 
        start_parameter='test-invoice', 
        invoice_payload=invoice_payload,  # Обязательный параметр 
        currency='USDT', 
        prices=[telebot.types.LabeledPrice(label='Услуга', amount=int(amount * 1000000))]  # Сумма в микро-USDT 
    ) 
except ValueError: 
    bot.send_message(message.chat.id, "Пожалуйста, введите корректную сумму в USDT.") 
except Exception as e: 
    bot.send_message(message.chat.id, f"Произошла ошибка: {str(e)}") 
 
@bot.precheckoutqueryhandler(func=lambda query: True) 
def precheckout(query): 
    bot.answerprecheckout_query(query.id, ok=True) 
 
 
@bot.messagehandler(contenttypes=['successfulpayment']) 
def successfulpayment(message): 
    bot.send_message(message.chat.id, "Спасибо за вашу покупку! Ваш счет успешно создан.") 
 
 
bot.polling()  

Произошла ошибка: A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: PAYMENTPROVIDERINVALID


должен через api crypto bot создавать чек на указаную сумму

По дате
По рейтингу
Аватар пользователя
Высший разум
10мес

Убедитесь, что токен провайдера оплаты (`CRYPTO_PAY_PROVIDER_TOKEN`) правильно введен и действителен. Неверный токен приведет к ошибке.

Убедитесь, что используете поддерживаемую валюту, такую как `USD`, так как `USDT` может не поддерживаться API Telegram.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  
import telebot 
 
APITOKEN = ''  # Токен вашего бота  
bot = telebot.TeleBot(APITOKEN) 
 
CRYPTO_PAY_PROVIDER_TOKEN = ''  # Токен провайдера CryptoPay 
 
@bot.message_handler(commands=['start']) 
def start(message): 
    bot.send_message(message.chat.id, "Добро пожаловать! Пожалуйста, введите сумму в USD для создания счета.") 
 
@bot.message_handler(func=lambda message: message.text.replace('.', '', 1).isdigit()) 
def create_invoice(message): 
    try: 
        amount = float(message.text)  # Преобразуем текст в число 
        if amount <= 0: 
            raise ValueError("Сумма должна быть положительной.") 
 
        invoice_payload = 'unique_invoice_payload'  # Уникальный идентификатор инвойса 
 
        # Создание инвойса 
        bot.send_invoice( 
            chat_id=message.chat.id, 
            title='Оплата в USD', 
            description='Оплата за услуги.', 
            provider_token=CRYPTO_PAY_PROVIDER_TOKEN,  # Токен провайдера 
            start_parameter='test-invoice', 
            invoice_payload=invoice_payload,  # Обязательный параметр 
            currency='USD',  # Используйте поддерживаемую валюту 
            prices=[telebot.types.LabeledPrice(label='Услуга', amount=int(amount * 100))]  # Сумма в центах 
        ) 
    except ValueError: 
        bot.send_message(message.chat.id, "Пожалуйста, введите корректную сумму в USD.") 
    except Exception as e: 
        bot.send_message(message.chat.id, f"Произошла ошибка: {str(e)}") 
 
@bot.pre_checkout_query_handler(func=lambda query: True) 
def pre_checkout(query): 
    bot.answer_pre_checkout_query(query.id, ok=True) 
 
@bot.message_handler(content_types=['successful_payment']) 
def successful_payment(message): 
    bot.send_message(message.chat.id, "Спасибо за вашу покупку! Ваш счет успешно создан.") 
 
bot.polling()  
Аватар пользователя
Знаток
10мес

понял братка