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();
Выполнить команду
Для локальной разработки. Не используйте в интернете!