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 {
display: none;
}
#paymentAccepted {
display: none;
}
#paymentRefused {
display: none;
}
</style>
</head>
@@ -46,6 +54,12 @@
<br>
<button id="connect-button-pay">Pay</button>
</div>
<div id="paymentAccepted">
<h2>Payment Accepted</h2>
</div>
<div id="paymentRefused">
<h2>Payment Refused</h2>
</div>
</main>
<script>
@@ -98,8 +112,9 @@
})
.then(response => {
if (response.ok) {
document.getElementById("paymentAccepted").style.display = 'block';
} else {
document.getElementById("paymentRefused").style.display = 'block';
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 javax.net.ssl.*;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.security.*;
import java.time.LocalDateTime;
@@ -57,12 +61,15 @@ public class Main {
String response = SocketManager.readResponse(clientSocket);
Logger.displayReceived(response);
String token = "TODO : extract token from response";
String answer = tokenManager.isValidToken(token) ? "ACK" : "NAK";
ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readTree(response);
String message = "ACK from ACS";
SocketManager.send(clientSocket, message);
Logger.displaySent("ACK from ACS");
String token = node.get("token").asText();
String answer = tokenManager.isValidToken(token) ? "ACK" : "NAK";
SocketManager.send(clientSocket, answer);
Logger.displaySent("Response To ACQ");
Logger.displaySent(answer);
} catch (IOException e) {
throw new RuntimeException(e);

View File

@@ -65,27 +65,25 @@ public class RequestHandler implements IRequestHandler {
// Send request to ACQ
SSLSocketFactory factory = sslCtx.getSocketFactory();
try (SSLSocket socket = (SSLSocket) factory.createSocket("127.0.0.1", ACQ_SERVER_PORT)) {
socket.startHandshake();
SSLSocket socket = (SSLSocket) factory.createSocket("127.0.0.1", ACQ_SERVER_PORT);
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
response = response.trim();
if ("ACK".equalsIgnoreCase(response)) {
// success
Logger.displayReceived("/payment accepted");
exchange.sendResponseHeaders(200, 0);
} else {
// failure
Logger.displayReceived("/payment refused");
exchange.sendResponseHeaders(401, 0);
}
exchange.close();
} catch(Exception e){
e.printStackTrace();
}