openFlutterWave method

dynamic openFlutterWave({
  1. required BuildContext buildContext,
  2. required String encryptionKey,
  3. required String publicKey,
  4. required String currencyCode,
  5. required String amount,
  6. required String emailId,
  7. required String receiptantName,
  8. required String phoneNumber,
  9. required String redirectURL,
  10. required String transactionRef,
  11. required bool isDebugMode,
  12. required dynamic successListener(
    1. UniPaymentResponse
    ),
  13. required dynamic failureListener(
    1. UniPaymentResponse
    ),
})

Implementation

openFlutterWave({
  required BuildContext buildContext,
  required String encryptionKey,
  required String publicKey,
  required String currencyCode,
  required String amount,
  required String emailId,
  required String receiptantName,
  required String phoneNumber,
  required String redirectURL,
  required String transactionRef,
  required bool isDebugMode,
  required Function(UniPaymentResponse) successListener,
  required Function(UniPaymentResponse) failureListener,
}) async {
  try {
    /// Customer object for storing initial details of payer
    final Customer customer = Customer(
        name: receiptantName, phoneNumber: phoneNumber, email: emailId);

    /// Flutter wave object with init transaction details
    final Flutterwave flutterwave = Flutterwave(
      context: buildContext,
      publicKey: publicKey,
      currency: currencyCode,
      redirectUrl: redirectURL,
      txRef: transactionRef,
      amount: amount.toString(),
      customer: customer,
      paymentOptions: "ussd, card, barter, payattitude",
      isTestMode: isDebugMode,
      customization: Customization(),
    );

    final ChargeResponse response = await flutterwave.charge();

    if (response.toJson()['success']) {
      /// Registers event listeners for payment success events
      successListener(
        UniPaymentResponse(
            "Status : ${response.toJson()['status'].toString()}, Transaction Refrence : ${response.toJson()['tx_ref'].toString()}",
            response.toJson()['success'],
            response.toJson()['transaction_id'].toString()),
      );
    } else {
      /// Registers event listeners for payment failures events
      failureListener(UniPaymentResponse(
          "Status : ${response.toJson()['status'].toString()}, Transaction Refrence : ${response.toJson()['tx_ref'].toString()}",
          response.toJson()['success'],
          response.toJson()['transaction_id'].toString()));
    }
  } catch (e) {
    /// Registers event listeners for payment failures events
    failureListener(
        UniPaymentResponse(e.toString(), false, "something went wrong!"));
  }
}