verify method

bool verify({
  1. required Object timestamp,
  2. required String paymentId,
  3. required num amount,
  4. required String externalUserId,
  5. required String status,
  6. required String signature,
  7. int? nowMs,
})

Implementation

bool verify({
  required Object timestamp,
  required String paymentId,
  required num amount,
  required String externalUserId,
  required String status,
  required String signature,
  int? nowMs,
}) {
  final expected = sign(
    timestamp: timestamp,
    paymentId: paymentId,
    amount: amount,
    externalUserId: externalUserId,
    status: status,
  );
  final actual = normalizeWebhookSignature(signature);
  if (expected != actual) return false;
  final ts = int.tryParse(timestamp.toString());
  if (ts == null) return false;
  final now = nowMs ?? DateTime.now().millisecondsSinceEpoch;
  return (now - ts).abs() <= maxSkewMs;
}