151 lines
6.6 KiB
PHP
151 lines
6.6 KiB
PHP
<?php
|
|
require("../../include/variables.php");
|
|
require("../../include/init.php");
|
|
require("../../include/main-functions.php");
|
|
|
|
use PHPMailer\PHPMailer\PHPMailer;
|
|
use PHPMailer\PHPMailer\Exception;
|
|
|
|
require './vendor/autoload.php';
|
|
|
|
$pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlDatabasePass);
|
|
|
|
$rawData = file_get_contents('php://input');
|
|
$data = json_decode($rawData, true);
|
|
|
|
if (isset($data['id'])) {
|
|
$id = $data['id'];
|
|
|
|
$client_id = 'cc_classic_znsSCWtxQRTJJVFaGqBgIjCqdES0e';
|
|
$client_secret = 'cc_sk_classic_WA2N5s5qZBk0aN0qozTfQh7RxXXjzFYa6JlYnRi7GNmQxIgeF1';
|
|
|
|
$ch = curl_init();
|
|
|
|
curl_setopt($ch, CURLOPT_URL, "https://api.sumup.com/token");
|
|
curl_setopt($ch, CURLOPT_POST, 1);
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([
|
|
'grant_type' => 'client_credentials',
|
|
'client_id' => $client_id,
|
|
'client_secret' => $client_secret
|
|
]));
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
|
|
$response = curl_exec($ch);
|
|
curl_close($ch);
|
|
|
|
$responseData = json_decode($response, true);
|
|
$access_token = $responseData['access_token'];
|
|
|
|
$ch = curl_init();
|
|
|
|
curl_setopt($ch, CURLOPT_URL, "https://api.sumup.com/v0.1/checkouts/$id");
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
curl_setopt($ch, CURLOPT_HTTPHEADER, [
|
|
"Authorization: Bearer $access_token",
|
|
"Content-Type: application/json"
|
|
]);
|
|
$response = curl_exec($ch);
|
|
curl_close($ch);
|
|
|
|
$responseData = json_decode($response, true);
|
|
|
|
if (isset($responseData['id'])) {
|
|
$date = date('Y-m-d H:i:s', strtotime($responseData['date']));
|
|
|
|
$description = $responseData['description'];
|
|
$username = substr($description, strpos($description, '@') + 1);
|
|
|
|
$request = $pdo->prepare("SELECT ID FROM users WHERE username = :username");
|
|
$request->bindParam(":username", $username);
|
|
$request->execute();
|
|
$userid = $request->fetchAll(PDO::FETCH_ASSOC);
|
|
|
|
if (strpos($description, 'BUY') === 0) {
|
|
// Récupérer les trois lettres après PAY
|
|
$product = substr($description, 3, 3);
|
|
$type = 2;
|
|
|
|
// Vérifier le type d'article
|
|
if ($product === 'ADH') {
|
|
$product_id = 1; // Article de type 1
|
|
$pay_action = "payé son adhésion de 1 EUR";
|
|
if ($userid) {
|
|
$request = $pdo->prepare("UPDATE adherents SET etape_adhesion = 3 WHERE userid = :userid");
|
|
$request->bindParam(":userid", $userid[0]['ID']);
|
|
$request->execute();
|
|
$request = $pdo->prepare("UPDATE users SET role = 10 WHERE userid = :userid");
|
|
$request->bindParam(":userid", $userid[0]['ID']);
|
|
$request->execute();
|
|
}
|
|
} else {
|
|
$product_id = null; // Cas où le type n'est pas ADH
|
|
$pay_action = "payé un truc à " . $responseData['amount'] . " EUR";
|
|
}
|
|
|
|
} elseif (strpos($description, 'DON') === 0) {
|
|
// Article de type NULL pour les chaînes qui commencent par DON
|
|
$product_id = null;
|
|
$pay_action = "fait un don de " . $responseData['amount'] . " EUR";
|
|
$type = 1;
|
|
} else {
|
|
// Si la chaîne ne commence ni par PAY ni par DON
|
|
$product_id = null;
|
|
}
|
|
|
|
// Récupérer le nom d'utilisateur après le @
|
|
|
|
$request = $pdo->prepare("INSERT INTO checkouts (amount, reference, date, description, checkout_id, status, transaction_id, userid, type, product) VALUES (:amount, :reference, :date, :description, :checkout_id, :status, :transaction_id, :userid, :type, :product)");
|
|
$request->bindParam(":amount", $responseData['amount']);
|
|
$request->bindParam(":reference", $responseData['checkout_reference']);
|
|
$request->bindParam(":date", $date);
|
|
$request->bindParam(":description", $responseData['description']);
|
|
$request->bindParam(":checkout_id", $responseData['id']);
|
|
$request->bindParam(":status", $responseData['status']);
|
|
$request->bindParam(":transaction_id", $responseData['transaction_id']);
|
|
$request->bindParam(":userid", $userid[0]['ID']);
|
|
$request->bindParam(":type", $type);
|
|
$request->bindParam(":product", $product_id);
|
|
$request->execute();
|
|
|
|
$mail = new PHPMailer(true);
|
|
|
|
try {
|
|
// Paramètres du serveur SMTP
|
|
$mail->isSMTP(); // Utiliser SMTP
|
|
$mail->Host = 'outlook.office365.com'; // Serveur SMTP Exchange
|
|
$mail->SMTPAuth = true; // Activer l'authentification SMTP
|
|
$mail->Username = 'smtp@e59.fr'; // Nom d'utilisateur SMTP
|
|
$mail->Password = 'WTFdoto5678TFWT'; // Mot de passe SMTP
|
|
$mail->SMTPSecure = 'tls'; // Activer le cryptage TLS
|
|
$mail->Port = 587; // Port TCP pour TLS
|
|
$mail->CharSet = "UTF-8";
|
|
|
|
// Destinataires
|
|
$mail->setFrom('sumup@e59.fr', 'Paiements E59');
|
|
$mail->addAddress('finances@e59.fr');
|
|
|
|
// Vous pouvez ajouter d'autres destinataires en utilisant $mail->addAddress()
|
|
// $mail->addAddress('autre-destinataire@example.com');
|
|
// Vous pouvez aussi ajouter des destinataires en copie (CC) ou en copie cachée (BCC)
|
|
// $mail->addCC('cc@example.com');
|
|
// $mail->addBCC('bcc@example.com');
|
|
|
|
// Pièces jointes (si nécessaire)
|
|
// $mail->addAttachment('/path/to/file.pdf'); // Ajouter un fichier joint
|
|
|
|
// Contenu de l'email
|
|
$mail->isHTML(true); // Activer le format HTML pour l'email
|
|
$mail->Subject = "Nouveau paiement";
|
|
$mail->Body = "<!DOCTYPE html><html lang='fr'><head><meta charset='UTF-8'><meta name='viewport' content='width=device-width, initial-scale=1.0'><title>Nouveau paiement</title><style>.content {font-family: Bahnschrift;margin: 0 auto;width: 80%;text-align: center;}</style></head><body><div class='content'><h3>Un nouveau paiement a eu lieu sur e59.fr/pay</h3><p>$username a $pay_action</p></div></body></html>";
|
|
$mail->AltBody = "$username a $pay_action";
|
|
|
|
// Envoyer l'email
|
|
$mail->send();
|
|
|
|
// Préparation de la requête de suppression
|
|
} catch (Exception $e) {
|
|
error_log("Erreur de Mailer: {$mail->ErrorInfo}");
|
|
}
|
|
}
|
|
}
|
|
?>
|