generateHash method
Future<String?>
generateHash({
- required EasebuzzPaymentModel paymentModel,
- required String key,
- required String salt,
override
Generates a hash for the payment transaction This method is not supported on web platform
Implementation
@override
Future<String?> generateHash({
required EasebuzzPaymentModel paymentModel,
required String key,
required String salt,
}) async {
try {
// Build the hash sequence
String valueOrBlank(String? value) =>
(value?.isNotEmpty ?? false) ? value! : '';
final data =
'$key|${paymentModel.txnid}|${paymentModel.amount}|${paymentModel.productinfo}|'
'${paymentModel.firstname}|${paymentModel.email}|'
'${valueOrBlank(paymentModel.udf1)}|${valueOrBlank(paymentModel.udf2)}|'
'${valueOrBlank(paymentModel.udf3)}|${valueOrBlank(paymentModel.udf4)}|'
'${valueOrBlank(paymentModel.udf5)}|${valueOrBlank(paymentModel.udf6)}|'
'${valueOrBlank(paymentModel.udf7)}||'
'||$salt';
// Get CryptoJS from window object
final cryptoJS = getProperty(web.window, 'CryptoJS');
// Generate SHA-512 hash
final hash = callMethod(cryptoJS, 'SHA512', [data]);
// Convert to string
final hashString = callMethod(hash, 'toString', []);
return hashString;
} catch (e) {
debugPrint('Error generating hash on web: $e');
return null;
}
}