createSessionId method
Implementation
Future<String> createSessionId({
required String merchantTransactionId,
required int transactionAmount,
required String merchantId,
required String clientId,
required String clientSecret,
required String clientApiKey,
List<Product>? products,
String? phoneNumber,
}) async {
String message =
"$merchantTransactionId,$transactionAmount,$merchantId,$clientId,$clientApiKey";
String signature = Generator.generateSignatureOrToken(
message,
clientSecret,
);
final requestBody = {
"merchantTxnId": merchantTransactionId,
"merchantId": merchantId,
"transactionAmount": transactionAmount.toString(),
"successRedirectionUrl": "https://yourdomain.com/success",
"failedRedirectionUrl": "https://yourdomain.com/failure",
"productList": products,
"phone_number": phoneNumber,
};
try {
final request = await _dioService.postRequest(
endpoint: ApiConstants.CREATE_SESSION_ID_URL,
data: requestBody,
Options: Options(
headers: {
"Signature": signature,
"Client-Id": clientId,
"Client-API-Key": clientApiKey,
},
),
);
return request.fold((failure) => throw Exception(failure.message), (
responseData,
) async {
return responseData["sessionId"];
});
} catch (e) {
print("Exception occurred: $e");
throw Exception("Something went wrong");
}
}