generatePaymentStatusHash function

String generatePaymentStatusHash({
  1. required String salt,
  2. required String apiKey,
  3. required String orderId,
  4. required String mode,
})

Builds the SHA-512 hash for /v2/paymentstatus (matches Android/iOS/PHP).

Implementation

String generatePaymentStatusHash({
  required String salt,
  required String apiKey,
  required String orderId,
  required String mode,
}) {
  final params = <String, String>{
    'api_key': apiKey,
    'mode': mode,
    'order_id': orderId,
  };
  final sortedKeys = params.keys.toList()..sort();
  final sb = StringBuffer(salt);
  for (final key in sortedKeys) {
    final value = params[key] ?? '';
    if (value.isNotEmpty) {
      sb.write('|$value');
    }
  }
  final digest = sha512.convert(utf8.encode(sb.toString()));
  return digest.bytes
      .map((b) => b.toRadixString(16).padLeft(2, '0'))
      .join()
      .toUpperCase();
}