package com.paymentlink.util; import java.security.SecureRandom; import java.util.UUID; public class IdGenerator { private static final SecureRandom RANDOM = new SecureRandom(); private static final String ALPHA_NUMERIC = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; /** * Generate order ID in format: ORD-{timestamp}-{random} */ public static String generateOrderId() { long timestamp = System.currentTimeMillis(); String randomPart = generateRandomString(6); return String.format("ORD-%d-%s", timestamp, randomPart); } /** * Generate payment link ID (hex format, 32 characters) */ public static String generatePaymentLinkId() { return UUID.randomUUID().toString().replace("-", ""); } /** * Generate random alphanumeric string */ private static String generateRandomString(int length) { StringBuilder sb = new StringBuilder(length); for (int i = 0; i < length; i++) { sb.append(ALPHA_NUMERIC.charAt(RANDOM.nextInt(ALPHA_NUMERIC.length()))); } return sb.toString(); } }