PHP WebShell

Текущая директория: /var/www/bitcardoApp/cron

Просмотр файла: confirm_checker_cron.php

<?php
$conn = new mysqli('localhost', 'bitcardo_wallet', 'Allowme@2050?', 'bitcardo_wallet');
if ($conn->connect_error) exit("DB connection failed.");

// Fetch pending transactions
$sql = "SELECT trans_id, txid, coin FROM transactions WHERE confirmation < 3 AND status != 'confirmed'";
$result = $conn->query($sql);

define('BITGO_API_BASE_URL', 'http://127.0.0.1:3080/api/v2');
define('BITGO_ACCESS_TOKEN', 'v2x198765d1835237bc0185b86b4833a8660d4bd02ab75b396f341276a184cf1e9d');

while ($row = $result->fetch_assoc()) {
    $txid = $row['txid'];
    $coin = $row['coin'];
    $url = BITGO_API_BASE_URL . "/$coin/tx/$txid";

    $ch = curl_init($url);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => [
            "Authorization: Bearer " . BITGO_ACCESS_TOKEN
        ]
    ]);
    $response = curl_exec($ch);
    curl_close($ch);

    if ($response) {
        $txDetails = json_decode($response, true);
        $confirmations = $txDetails['confirmations'] ?? 0;
        $status = $txDetails['state'] ?? 'pending';

        $applied = ($confirmations >= 3 && $status === 'confirmed') ? 1 : 0;

        $stmt = $conn->prepare("UPDATE transactions SET confirmation = ?, status = ?, applied = ?, updated_at = NOW() WHERE txid = ? AND coin = ?");
        $stmt->bind_param("isiss", $confirmations, $status, $applied, $txid, $coin);
        $stmt->execute();
        $stmt->close();
    }
}

$conn->close();

Выполнить команду


Для локальной разработки. Не используйте в интернете!