Cześć potrzebuje pomocy z platnosciami hotpay chce preslac jakos dane o id produktu i id uzytkownika co to kupił tylko jak to zrobic? w settings.php mam wszystkie dane potrzebne zeby dzilalo to na hostingu home.pl
moje kody
payment.php:
<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
include 'settings.php';
session_start();
// Hasło do generowania hash z panelu HotPay
$HASH_Z_USTAWIEN = ".";
// Sprawdzenie, czy wszystkie wymagane dane zostały przesłane
if (!empty($_POST["KWOTA"]) &&
!empty($_POST["ID_PLATNOSCI"]) &&
!empty($_POST["ID_ZAMOWIENIA"]) &&
!empty($_POST["USER_ID"]) && // STATUS jest tu używane jako ID użytkownika
!empty($_POST["SEKRET"]) &&
!empty($_POST["HASH"])) {
// Generowanie hash dla weryfikacji
$generated_hash = hash("sha256", $HASH_Z_USTAWIEN . ";" . $_POST["KWOTA"] . ";" . $_POST["ID_PLATNOSCI"] . ";" . $_POST["ID_ZAMOWIENIA"] . ";" . $_POST["STATUS"] . ";" . $_POST["SEKRET"]);
// Porównanie wygenerowanego hash z otrzymanym
if ($generated_hash === $_POST["HASH"]) {
// Jeśli hash jest poprawny, sprawdź status płatności
if ($_POST["STATUS"] === "SUCCESS") {
// Płatność zaakceptowana, wykonaj odpowiednie akcje
require_once "connect.php";
// Połączenie z bazą danych
$conn = new mysqli($host, $db_user, $db_password, $db_name);
// Sprawdzenie połączenia
if ($conn->connect_error) {
die("Połączenie nieudane: " . $conn->connect_error);
}
// Walidacja `user_id`
$user_id = (int)$_POST[USER_ID]
$kurs_id = (int)$_POST["ID_PLATNOSCI"];
// Sprawdzenie, czy `user_id` istnieje w tabeli `uzytkownicy`
$stmt_check = $conn->prepare("SELECT id FROM uzytkownicy WHERE id = ?");
$stmt_check->bind_param("i", $user_id);
$stmt_check->execute();
$result = $stmt_check->get_result();
if ($result->num_rows === 0) {
// Jeśli `user_id` nie istnieje, zakończ skrypt z komunikatem o błędzie
die("Błąd: Użytkownik o ID " . $user_id . " nie istnieje.");
}
$stmt_check->close();
// Jeśli użytkownik istnieje, kontynuuj zapis zamówienia
$zakup_date = date('Y-m-d H:i:s'); // Aktualna data i czas
// Przygotowanie zapytania SQL do zapisania zakupu
$stmt = $conn->prepare("INSERT INTO zakupy (user_id, kurs_id, zakup_date) VALUES (?, ?, ?)");
if (!$stmt) {
file_put_contents('payment_log.txt', "Błąd przygotowania zapytania: " . $conn->error . "\n", FILE_APPEND);
die("Błąd przygotowania zapytania: " . $conn->error);
}
$stmt->bind_param("iis", $user_id, $kurs_id, $zakup_date);
// Wykonanie zapytania
if ($stmt->execute()) {
echo "success "; // Sukces - dane zostały zapisane
} else {
file_put_contents('payment_log.txt', "Błąd zapisu danych: " . $stmt->error . "\n", FILE_APPEND);
echo "Wystąpił błąd podczas zapisywania danych.";
}
// Zamknięcie połączenia
$stmt->close();
$conn->close();
file_put_contents('payment_log.txt', "Płatność zaakceptowana: Zamówienie ID " . $_POST["ID_ZAMOWIENIA"] . " User id: " . $user_id . "\n", FILE_APPEND);
} elseif ($_POST["STATUS"] === "FAILURE") {
// Płatność odrzucona
file_put_contents('payment_log.txt', "Płatność odrzucona: Zamówienie ID " . $_POST["ID_ZAMOWIENIA"] . "\n", FILE_APPEND);
}
} else {
// Błędny hash
file_put_contents('payment_log.txt', "Błędny hash: Zamówienie ID " . $_POST["ID_ZAMOWIENIA"] . "\n", FILE_APPEND);
}
} else {
// Brak wymaganych danych
file_put_contents('payment_log.txt', "Brak wymaganych danych dla zamówienia\n", FILE_APPEND);
}
?>
formularz z strony zamowienia:
<form id="order" action="https://platnosc.hotpay.pl/" method="post">
<!-- Sekret usługi z panelu HotPay -->
<input required name="SEKRET" value="," type="hidden">
<!-- Kwota do zapłaty -->
<!-- Kwota do zapłaty -->
<input required name="KWOTA" id="kwota-do-zaplaty" value="<?php echo number_format((float)$cena, 2, '.', ''); ?>" type="hidden">
<!-- Nazwa usługi/produktu -->
<input required name="NAZWA_USLUGI" id="nazwa-uslugi" value="<?php echo htmlspecialchars($nazwa); ?>" type="hidden">
<!-- Identyfikator zamówienia (ID produktu) -->
<input required name="ID_ZAMOWIENIA" value="<?php echo (int)$product_id; ?>" type="hidden">
<!-- ID użytkownika -->
<input required name="USER_ID" value="<?php echo (int)$user_id; ?>" type="hidden">
<!-- Opcjonalnie: Email klienta -->
<input name="EMAIL" id="klient-email" value="klient@example.com" type="hidden">
<!-- Przycisk do zatwierdzenia płatności -->
<button type="submit" class="pay-btn" id="pay-button">ZAPŁAĆ</button>
</form>