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 {
// Function to return blank for null or empty values
String valueOrBlank(String? value) =>
(value?.isNotEmpty ?? false) ? value! : '';
// Build the hash sequence
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';
// Generate the hash using SHA-512
return sha512.convert(utf8.encode(data)).toString();
} catch (e) {
debugPrint('Error generating hash: $e');
return null;
}
}