createSessionId method
Future<String>
createSessionId(
{ - required String merchantTransactionId,
- required int transactionAmount,
- required String merchantId,
- required String clientId,
- String? successRedirectionUrl,
- String? failedRedirectionUrl,
- required String clientSecret,
- required String clientApiKey,
- List<Product>? products,
- String? phoneNumber,
})
Implementation
Future<String> createSessionId({
required String merchantTransactionId,
required int transactionAmount,
required String merchantId,
required String clientId,
String? successRedirectionUrl,
String? failedRedirectionUrl,
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": failedRedirectionUrl ?? "https://hamropay.com/success",
"failedRedirectionUrl": successRedirectionUrl ?? "https://hamropay.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");
}
}