Javafx WebView -Fehler beim Integrieren von Stripe Payment GatewayJava

Java-Forum
Anonymous
 Javafx WebView -Fehler beim Integrieren von Stripe Payment Gateway

Post by Anonymous »

Ich versuche, Stripe Payment Gateway in meine Javafx -Anwendung zu integrieren. Der Zahlungsdienst scheint einwandfrei zu funktionieren, aber ich erhalte immer wieder einen Fehler, wenn ich versuche, die Stripe Checkout -Seite in einer Webview zu öffnen.

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());
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post