initTransactionSession method

  1. @override
Future<void> initTransactionSession()
override

Implementation

@override
Future<void> initTransactionSession() async {
  view!.onLoad(true);
  try {
    final String authToken = await _getAuthToken();
    final String transactionReference = _getTransactionReferenceOrGenerateNewGuid(viewModel.paymentDetails.transactionReference);

    final ResponseDto<TransactionSessionResponseDto> sessionResponseDto = await _api!.initTransactionSession(
        viewModel.paymentDetails.customerId,
        Config.paymentCheckoutSuccessUrl,
        Config.otpFailedUrl,
        viewModel.paymentDetails.paidAmount,
        transactionReference,
        authToken);
    final String? sessionToken = HttpUtils.getQueryParam(sessionResponseDto.response!.sessionUrl, 'token');

    view!.onLoad(false);
    view!.onInitTransactionSuccess(sessionToken!);
  } on ApiException catch (e) {
    view!.onLoad(false);
    view!.onInitTransactionApiFail(e);
  }
}