initiateTransaction method

Future<UpiResponse> initiateTransaction(
  1. String upiUrl,
  2. String packageName
)

Initiates a UPI transaction with the given upiRequestParams.

Parameters:

  • upiRequestParams: The parameters required for initiating a UPI transaction.

Returns: A Future that completes with the UPI response.

Implementation

Future<UpiResponse> initiateTransaction(
    String upiUrl, String packageName) async {
  try {
    final String? response = await _channel.invokeMethod(
        'open_upi_app', {"url": upiUrl, "package": packageName});

    if (kDebugMode) {
      print('response-->$response');
    }
    if (response != null && response == "User Cancelled transaction") {
      return UpiResponse(status: 'USER_CANCELLED_TRANSACTION');
    } else if (response == "UNREGISTERED_UPI_INTENT_APP") {
      return UpiResponse(status: 'UNREGISTERED_UPI_INTENT_APP');
    } else if (response == "UNAVAILABLE_UPI_INTENT_APP") {
      return UpiResponse(status: 'UNAVAILABLE_UPI_INTENT_APP');
    } else {
      return UpiResponse(status: 'UPI_TRANSACTION_GENERIC_ERROR');
    }
  } catch (e) {
    return UpiResponse(status: 'UPI_TRANSACTION_GENERIC_ERROR');
  }
}