webhook validate in spring boot

Hello, I have a question about webhook validate.

The current development environment is spring boot and java 17 environment, and I wrote the webbook validate code like the code below, but x-zm-signature keeps coming out differently, is it possible to check the sample code or code?

@Operation(hidden = true)
@PostMapping(“/meeting-end”)
public ResponseEntity<Map<String, String>> endZoomMeeting(@RequestBody MeetingEndWebhookReq zoomReq, HttpServletRequest request)
throws JsonProcessingException {
Map<String, String> payload = new HashMap<>();

    payload.put("plainToken", zoomReq.getPayload().getPlainToken());

    MeetingValidate validate = MeetingValidate.builder()
        .event(zoomReq.getEvent())
        .payload(payload)
        .event_ts(zoomReq.getEvent_ts())
        .build();

    ObjectMapper objectMapper = new ObjectMapper();

    String message =  "v0:" + request.getHeader("x-zm-request-timestamp") + ":" + objectMapper.writeValueAsString(validate);
    String generatedSignature = generateSignature(message, secretKey);

    Map<String, String> response = new HashMap<>();
    log.info("message ===================== {}", message);
    log.info("json ======================== {}", objectMapper.writeValueAsString(validate));
    log.info("signature =================== {}", request.getHeader("x-zm-signature"));
    log.info("value ======================= {}", generatedSignature);

    if (request.getHeader("x-zm-signature").equals(generatedSignature)) {
        if (zoomReq.getEvent().equals("endpoint.url_validation")) {
            if (zoomReq.getEvent().equals("endpoint.url_validation")) {
                String plainToken = zoomReq.getPayload().getPlainToken();
                String hashForValidate = generateSignature(plainToken, secretKey);

                response.put("plainToken", plainToken);
                response.put("encryptedToken", hashForValidate);
                return ResponseEntity.status(HttpStatus.OK).body(response);
            }
        }
    }

    return ResponseEntity.status(HttpStatus.OK).body(response);

// return ResponseEntity.ok(Body.success(meetingService.quitMeeting(request)));
}

private String generateSignature(String message, String secretToken) {
    try {
        SecretKeySpec secretKeySpec = new SecretKeySpec(secretToken.getBytes(StandardCharsets.UTF_8), "HmacSHA256");
        Mac sha256Hmac = Mac.getInstance("HmacSHA256");
        sha256Hmac.init(secretKeySpec);

        byte[] hashBytes = sha256Hmac.doFinal(message.getBytes(StandardCharsets.UTF_8));
        return "v0=" + Hex.encodeHexString(hashBytes);
    } catch (NoSuchAlgorithmException | InvalidKeyException e) {
        e.printStackTrace();
        return null; // Handle the error case appropriately
    }
}