python vkcoin

← разместить еще код

Расшаренный код:

def eye():
    """
    Подключение к базе данных MySQL
    """
    dbconnector = mysql.connector.connect(host=DB_HOST, user=DB_USER, passwd=DB_PASS, database=DB_NAME)
    """
    Подключение к мерчанту VK Coins
    """
    merchant = vkcoin.VKCoinApi(user_id=OWNER_ID, key=COINS_TOKEN)
    """
    Подключение к ВК
    """
    vk_session = vk_api.VkApi(token=GROUP_ACCESS_TOKEN)
    vk = vk_session.get_api()
    
    @merchant.lp_handler
    def payment_received(data):
        """
        При получении платежа будет запущена эта функция. Она может называться как угодно
        :param data.to_id: Ваш ID ВКонтакте
        :param data.id: ID платежа
        :param data.created_at: Unix timestamp, время когда был совершён платёж
        :param data.from_id: ID отправителя платежа
        :param data.amount: Количество полученных VK Coin
        """

        from_id = data['from_id']
        amount = data['amount']
        payload = data['payload']

        # Создаем экземпляр класса бесед и получаем ид текущей беседы для отправки сообщения
        conv = Conversations(dbconnector)
        conversation_id = conv.get_conversation_id(payload)
        min_rate = int(conv.get_min_rate(conversation_id))
        if (int(amount) < min_rate):
            pass

        else:
            # Если сумма в транзикции больше или равна минимальной ставки в беседе
            # Создаем экземпляр класса транзакций
            trans = Transactions(dbconnector) # payload выступает в качестве ида беседы
            # Добавляем новую транзакцию
            trans.add_transaction(from_id, payload, amount)

            # Получаем все транзикции и формируем сообщение
            trans_data = trans.get_current_transactions(payload)
            trans_dict = trans.transactions_to_dict(trans_data)
            name = beautiful_name(trans_dict[0]['from_id'], vk)
            message = "Новый перевод в банк от %s" % (name)

            attachment_data = 'photo-%s_%s' % (GROUP_ID, trans.trans_dict_img(trans_dict, vk))

            vk.messages.send(peer_id=conversation_id, random_id=get_random_id(), keyboard=keyboard.get_keyboard(), message=message, attachment=attachment_data)

    merchant.longpoll_start(tx=[1])  # Запускаем LongPoll