August 28, 2023

Подключение платёжного шлюза к вашему боту

#! /usr/bin/env python3

from flask import Flask, request
import logging
app = Flask(__name__)

logging.basicConfig(filename="logs.log",
format="%(filename)+13s [ LINE:%(lineno)-4s] %(levelname)-8s
 [%(asctime)s] %(message)s", 
 level=logging.INFO)
 
@app.route("/purchase", methods=["POST"])
def webhook():    
    try:        
         if request.method == "POST":
                     data = request.form  
                     print(data)
                     # Ваша бизнес логика 
                     return "OK", 200    
    except Exception as e:
            logging.info(f"Ошибка: {e}")
            return "Error", 400    
from waitress import serve
serve(app, host="0.0.0.0", port=12001)


Вы можете легко подключить оповещения из нашего сервиса в вашего бота, при минимальных усилиях.
Вам необходимо в нашем боте в разделе webhook внести адрес вашего сервера, куда будут приходить callback оповещения.
Подключить модуль веб сервере, представленного выше к вашему боту.
Оповещения будут приходить в формате неизменяемого словаря,
form-unlencoded
ImmutableMultiDict(
[('status', 'success'), 
('merchant_id', 'ваш id в телеграме'),
('telegram_id', 'id в телеграме вашего плательщика'), 
('order_id', 'Id всегда разный'),
('check_id', 'номер вашего счёта который оплатил пользователь'),
('amount', 'Количество рублей'), 
('date', 'Дата оплаты, строка %Y-%m-%d %H:%M:%S')])

Если ваш сервер не отвечает, сообщение будет отправляться в течение 5 минут с интервалом в 60 секунд

Для генерации ссылки на оплату необходимо вставить в вашего бота кнопку со

сборной ссылкой как в примере:

def clv():
    chat_id = 'Id в телеграм, мерчанта в SkyPaymentLite'
    amount = 'Сумма'
    clv = InlineKeyboardMarkup(row_width=1)
    clv.add(
         InlineKeyboardButton(text=f"Оплатить",
         url=f"https://t.me/SkyPaymentLiteBot?start={chan_id}={amount}")
    )
    return clv

Если остались вопросы обращайтесь в нашу поддержку