'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 = "Nouveau paiement

Un nouveau paiement a eu lieu sur e59.fr/pay

$username a $pay_action

"; $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}"); } } } ?>