startPayment static method

Future<UpiResponse> startPayment({
  1. required String paymentApp,
  2. required String upiUrl,
})

Initiates a UPI payment transaction.

Parameters:

  • paymentApp: The UPI payment app to be used for the transaction.
  • payeeVpa: The VPA (Virtual Payment Address) of the payee.
  • payeeName: The name of the payee.
  • transactionId: The unique ID for the transaction.
  • transactionRefId: The reference ID for the transaction (optional).
  • payeeMerchantCode: The merchant code of the payee.
  • description: The description of the transaction.
  • amount: The amount to be transferred.
  • currency: The currency for the transaction (default is "INR").
  • response: A callback function to handle the UPI response.
  • error: A callback function to handle errors during the transaction.

Implementation

static Future<UpiResponse> startPayment({
  required String paymentApp,
  required String upiUrl,
}) async {
  try {
    if (Platform.isAndroid) {
      if (kDebugMode) {
        print('enimbbl_mobile_kit_flutter_webview_sdk');
      }
      return await FlutterNativeUpi(
              const MethodChannel('nimbbl_mobile_kit_flutter_webview_sdk'))
          .initiateTransaction(upiUrl, paymentApp);
      // _showTransactionDetailsDialog(upiInstance);
    } else {
     // String url = appendAndMakeUrl(upiRequestParams);
     return await FlutterNativeUpi(
              const MethodChannel('nimbbl_mobile_kit_flutter_webview_sdk'))
          .initiateTransactioniOS(upiUrl);
    }
  } on PlatformException catch (e) {
    if (kDebugMode) {
      print('error-->$e');
    }
    return UpiResponse(status: 'fail');
  } catch (e) {
    if (e is UpiException) {
      return UpiResponse(status: 'fail');
    } else {
      return UpiResponse(status: 'fail');
    }
  }
}