Display Payment Accepted or Refused

This commit is contained in:
Cédric
2025-12-08 12:26:24 +01:00
parent 9cdbcc3734
commit 2e3d3ef51f
3 changed files with 42 additions and 22 deletions

View File

@@ -26,6 +26,14 @@
#payment { #payment {
display: none; display: none;
} }
#paymentAccepted {
display: none;
}
#paymentRefused {
display: none;
}
</style> </style>
</head> </head>
@@ -46,6 +54,12 @@
<br> <br>
<button id="connect-button-pay">Pay</button> <button id="connect-button-pay">Pay</button>
</div> </div>
<div id="paymentAccepted">
<h2>Payment Accepted</h2>
</div>
<div id="paymentRefused">
<h2>Payment Refused</h2>
</div>
</main> </main>
<script> <script>
@@ -98,8 +112,9 @@
}) })
.then(response => { .then(response => {
if (response.ok) { if (response.ok) {
document.getElementById("paymentAccepted").style.display = 'block';
} else { } else {
document.getElementById("paymentRefused").style.display = 'block';
throw new Error("Payment request failed") throw new Error("Payment request failed")
} }
}) })

View File

@@ -10,6 +10,10 @@ import common.common.src.requestHandlers.SSLServerFactory;
import common.common.src.socket.SocketManager; import common.common.src.socket.SocketManager;
import javax.net.ssl.*; import javax.net.ssl.*;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException; import java.io.IOException;
import java.security.*; import java.security.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@@ -57,12 +61,15 @@ public class Main {
String response = SocketManager.readResponse(clientSocket); String response = SocketManager.readResponse(clientSocket);
Logger.displayReceived(response); Logger.displayReceived(response);
String token = "TODO : extract token from response"; ObjectMapper mapper = new ObjectMapper();
String answer = tokenManager.isValidToken(token) ? "ACK" : "NAK"; JsonNode node = mapper.readTree(response);
String message = "ACK from ACS"; String token = node.get("token").asText();
SocketManager.send(clientSocket, message); String answer = tokenManager.isValidToken(token) ? "ACK" : "NAK";
Logger.displaySent("ACK from ACS");
SocketManager.send(clientSocket, answer);
Logger.displaySent("Response To ACQ");
Logger.displaySent(answer);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);

View File

@@ -65,27 +65,25 @@ public class RequestHandler implements IRequestHandler {
// Send request to ACQ // Send request to ACQ
SSLSocketFactory factory = sslCtx.getSocketFactory(); SSLSocketFactory factory = sslCtx.getSocketFactory();
try (SSLSocket socket = (SSLSocket) factory.createSocket("127.0.0.1", ACQ_SERVER_PORT)) { SSLSocket socket = (SSLSocket) factory.createSocket("127.0.0.1", ACQ_SERVER_PORT);
socket.startHandshake(); socket.startHandshake();
SocketManager.send(socket, jsonString);
Logger.displaySent(jsonString);
// Wait ACQ ACK or NAK
response = SocketManager.readResponse(socket);
Logger.displayReceived(response);
SocketManager.send(socket, jsonString);
Logger.displaySent(jsonString);
// Wait ACQ ACK or NAK
response = SocketManager.readResponse(socket);
Logger.displayReceived(response);
} catch (Exception e) {
throw new RuntimeException(e);
}
// Return result // Return result
response = response.trim();
if ("ACK".equalsIgnoreCase(response)) { if ("ACK".equalsIgnoreCase(response)) {
// success Logger.displayReceived("/payment accepted");
exchange.sendResponseHeaders(200, 0);
} else { } else {
// failure Logger.displayReceived("/payment refused");
exchange.sendResponseHeaders(401, 0);
} }
exchange.close();
} catch(Exception e){ } catch(Exception e){
e.printStackTrace(); e.printStackTrace();
} }