Code: Select all
Caused by: java.lang.IllegalAccessError: superclass access check failed: class com.sun.javafx.sg.prism.web.NGWebView (in unnamed module @0xeb8f1c5) cannot access class com.sun.javafx.sg.prism.NGGroup (in module javafx.graphics) because module javafx.graphics does not export com.sun.javafx.sg.prism to unnamed module @0xeb8f1c5
Stripe Payment Service (funktioniert gut):
Code: Select all
public class StripePaymentService {
public static String createCheckoutSession(double amount) throws Exception {
// Récupérer la clé API depuis les variables d'environnement
String stripeApiKey = "STRIPE_API_KEY";
if (stripeApiKey == null || stripeApiKey.isEmpty()) {
throw new RuntimeException("La clé API Stripe n'est pas configurée.");
}
// Initialiser Stripe avec la clé API
Stripe.apiKey = stripeApiKey;
// Créer une session de paiement
SessionCreateParams params = SessionCreateParams.builder()
.setMode(SessionCreateParams.Mode.PAYMENT)
.setSuccessUrl("http://localhost:8080/success")
.setCancelUrl("http://localhost:8080/cancel")
.addLineItem(
SessionCreateParams.LineItem.builder()
.setQuantity(1L)
.setPriceData(
SessionCreateParams.LineItem.PriceData.builder()
.setCurrency("eur")
.setUnitAmount((long) (amount * 100)) // Stripe travaille en centimes
.setProductData(
SessionCreateParams.LineItem.PriceData.ProductData.builder()
.setName("Réservation Événement")
.build()
)
.build()
)
.build()
)
.build();
// Créer la session de paiement
Session session = Session.create(params);
return session.getUrl(); // Retourne l'URL de la session de paiement
}
}
< /code>
Zahlungsschaltfläche im JavaFX -Controller: < /p>
public void paymentButton() {
String displayedPrice = totalPriceLabel.getText().replace("Total Price: ", "").trim();
// Remove non-numeric characters (assuming "dt" is always at the end)
if (displayedPrice.endsWith("dt")) {
displayedPrice = displayedPrice.substring(0, displayedPrice.length() - 3).trim();
}
try {
// Convertir la chaîne en double
double amount = Double.parseDouble(displayedPrice);
// Créer une session de paiement Stripe
String paymentUrl = StripePaymentService.createCheckoutSession(amount);
// Ouvrir l'URL de paiement dans un WebView
WebView webView = new WebView();
webView.getEngine().load(paymentUrl);
// Afficher le WebView dans une nouvelle fenêtre
Stage stage = new Stage();
stage.setScene(new Scene(webView, 800, 600));
stage.setTitle("Paiement Stripe");
stage.show();
} catch (NumberFormatException e) {
alert.errorMessage("Erreur de saisie");
System.out.println(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
alert.errorMessage("Erreur de paiement");
System.out.println(e.getMessage());
}
}