Razorpay Flutter Plugin

Overview

Razorpay Flutter

Flutter plugin for Razorpay SDK.

pub package

Getting Started

This flutter plugin is a wrapper around our Android and iOS SDKs.

The following documentation is only focused on the wrapper around our native Android and iOS SDKs. To know more about our SDKs and how to link them within the projects, refer to the following documentation:

Android: https://razorpay.com/docs/checkout/android/

iOS: https://razorpay.com/docs/ios/

To know more about Razorpay payment flow and steps involved, read up here: https://razorpay.com/docs/

Prerequisites

  • Learn about the Razorpay Payment Flow.
  • Sign up for a Razorpay Account and generate the API Keys from the Razorpay Dashboard. Using the Test keys helps simulate a sandbox environment. No actual monetary transaction happens when using the Test keys. Use Live keys once you have thoroughly tested the application and are ready to go live.

Installation

This plugin is available on Pub: https://pub.dev/packages/razorpay_flutter

Add this to dependencies in your app's pubspec.yaml

razorpay_flutter: ^1.2.3

Note for Android: Make sure that the minimum API level for your app is 19 or higher.

Proguard rules

If you are using proguard for your builds, you need to add following lines to proguard files

-keepattributes *Annotation*
-dontwarn com.razorpay.**
-keep class com.razorpay.** {*;}
-optimizations !method/inlining/
-keepclasseswithmembers class * {
  public void onPayment*(...);
}

Follow this for more details.

Note for iOS: Make sure that the minimum deployment target for your app is iOS 10.0 or higher. Also, don't forget to enable bitcode for your project.

Run flutter packages get in the root directory of your app.

Usage

Sample code to integrate can be found in example/lib/main.dart.

Import package

import 'package:razorpay_flutter/razorpay_flutter.dart';

Create Razorpay instance

_razorpay = Razorpay();

Attach event listeners

The plugin uses event-based communication, and emits events when payment fails or succeeds.

The event names are exposed via the constants EVENT_PAYMENT_SUCCESS, EVENT_PAYMENT_ERROR and EVENT_EXTERNAL_WALLET from the Razorpay class.

Use the on(String event, Function handler) method on the Razorpay instance to attach event listeners.

_razorpay.on(Razorpay.EVENT_PAYMENT_SUCCESS, _handlePaymentSuccess);
_razorpay.on(Razorpay.EVENT_PAYMENT_ERROR, _handlePaymentError);
_razorpay.on(Razorpay.EVENT_EXTERNAL_WALLET, _handleExternalWallet);

The handlers would be defined somewhere as

void _handlePaymentSuccess(PaymentSuccessResponse response) {
  // Do something when payment succeeds
}

void _handlePaymentError(PaymentFailureResponse response) {
  // Do something when payment fails
}

void _handleExternalWallet(ExternalWalletResponse response) {
  // Do something when an external wallet was selected
}

To clear event listeners, use the clear method on the Razorpay instance.

_razorpay.clear(); // Removes all listeners

Setup options

var options = {
  'key': '<YOUR_KEY_HERE>',
  'amount': 100,
  'name': 'Acme Corp.',
  'description': 'Fine T-Shirt',
  'prefill': {
    'contact': '8888888888',
    'email': '[email protected]'
  }
};

A detailed list of options can be found here.

Open Checkout

_razorpay.open(options);

Troubleshooting

Enabling Bitcode

Open ios/Podfile and find this section:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end

Set config.build_settings['ENABLE_BITCODE'] = 'YES'.

Setting Swift version

Add the following line below config.build_settings['ENABLE_BITCODE'] = 'YES':

config.build_settings['SWIFT_VERSION'] = '5.0'

CocoaPods could not find compatible versions for pod "razorpay_flutter" when running pod install

Specs satisfying the `razorpay_flutter (from
    `.symlinks/plugins/razorpay_flutter/ios`)` dependency were found, but they
    required a higher minimum deployment target.

This is due to your minimum deployment target being less than iOS 10.0. To change this, open ios/Podfile in your project and add/uncomment this line at the top:

# platform :ios, '9.0'

and change it to

platform :ios, '10.0'

and run pod install again in the ios directory.

iOS build fails with 'razorpay_flutter/razorpay_flutter-Swift.h' file not found

Add use_frameworks! in ios/Podfile and run pod install again in the ios directory.

Gradle build fails with Error: uses-sdk:minSdkVersion 16 cannot be smaller than version 19 declared in library [:razorpay_flutter]

This is due to your Android minimum SDK version being less than 19. To change this, open android/app/build.gradle, find minSdkVersion in defaultConfig and set it to at least 19.

A lot of errors saying xxxx is not defined for the class 'Razorpay'

We export a class Razorpay from package:razorpay_flutter/razorpay_flutter.dart. Check if your code is redeclaring the Razorpay class.

Type 'xxxx' is not a subtype of type 'xxxx' of 'response' in Razorpay.on.<anonymous closure>

[VERBOSE-2:ui_dart_state.cc(148)] Unhandled Exception: type 'PaymentFailureResponse' is not a subtype of type 'PaymentSuccessResponse' of 'response'
#0      Razorpay.on.<anonymous closure> (package:razorpay_flutter/razorpay_flutter.dart:87:14)
#1      EventEmitter.emit.<anonymous closure> (package:eventify/src/event_emitter.dart:94:14)
#2      List.forEach (dart:core-patch/growable_array.dart:278:8)
#3      EventEmitter.emit (package:eventify/src/event_emitter.dart:90:15)
#4      Razorpay._handleResult (package:razorpay_flutter/razorpay_flutter.dart:81:19)
#5      Razorpay.open (package:razorpay_flutter/razorpay_flutter.dart:49:5)

Check the signatures of the callbacks for payment events. They should match the ones described here.

API

Razorpay

open(map<String, dynamic> options)

Open Razorpay Checkout.

The options map has key as a required property. All other properties are optional. For a complete list of options, please see the Checkout documentation.

on(String eventName, Function listener)

Register event listeners for payment events.

clear()

Clear all event listeners.

Error Codes

The error codes have been exposed as integers by the Razorpay class.

The error code is available as the code field of the PaymentFailureResponse instance passed to the callback.

Error Code Description
NETWORK_ERROR There was a network error, for example loss of internet connectivity
INVALID_OPTIONS An issue with options passed in Razorpay.open
PAYMENT_CANCELLED User cancelled the payment
TLS_ERROR Device does not support TLS v1.1 or TLS v1.2
UNKNOWN_ERROR An unknown error occurred.

Event names

The event names have also been exposed as Strings by the Razorpay class.

Event Name Description
EVENT_PAYMENT_SUCCESS The payment was successful.
EVENT_PAYMENT_ERROR The payment was not successful.
EVENT_EXTERNAL_WALLET An external wallet was selected.

PaymentSuccessResponse

Field Name Type Description
paymentId String The ID for the payment.
orderId String The order ID if the payment was for an order, null otherwise.
signature String The signature to be used for payment verification. (Only valid for orders, null otherwise)

PaymentFailureResponse

Field Name Type Description
code int The error code.
message String The error message.

ExternalWalletResponse

Field Name Type Description
walletName String The name of the external wallet selected.
Comments
  • IOS Flutter, build failing

    IOS Flutter, build failing

    ** BUILD FAILED ** Xcode's output: ↳ ~/flutter/.pub-cache/hosted/pub.dartlang.org/razorpay_flutter-1.1.2/ios/Classes/RazorpayDelegate.swift:4:42: error: use of undeclared type 'RazorpayPaymentCompletionProtocolwithData' public class RazorpayDelegate: NSObject, RazorpayPaymentCompletionProtocolwithData, ExternalWalletSelectionProtocol { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~/flutter/.pub-cache/hosted/pub.dartlang.org/razorpay_flutter-1.1.2/ios/Classes/RazorpayDelegate.swift:4:85: error: 'ExternalWalletSelectionProtocol' is unavailable: cannot find Swift declaration for this protocol public class RazorpayDelegate: NSObject, RazorpayPaymentCompletionProtocolwithData, ExternalWalletSelectionProtocol { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Razorpay.ExternalWalletSelectionProtocol:2:17: note: 'ExternalWalletSelectionProtocol' has been explicitly marked unavailable here public protocol ExternalWalletSelectionProtocol { ^ ~/flutter/.pub-cache/hosted/pub.dartlang.org/razorpay_flutter-1.1.2/ios/Classes/RazorpayDelegate.swift:57:24: error: 'Razorpay' is unavailable: cannot find Swift declaration for this class let razorpay = Razorpay.initWithKey(key ?? "", andDelegateWithData: self) ^~~~~~~~ Razorpay.Razorpay:2:14: note: 'Razorpay' has been explicitly marked unavailable here public class Razorpay : NSObject { ^

    opened by superhumang 50
  • Will you please add null-safety support?

    Will you please add null-safety support?

    Hi, I am using this razorpay-flutter plugin most of my projects where ever i want to integrate payment gateway. I want migrate all of my projects to null-safety. But razorpay-flutter yet to support null-safety. May i know what is ETA for new release with null-safety support.

    Thanks, Sureace.

    opened by sureace 47
  • on the first try payment works fine, but then it doesnt give success or failure. It just closes after submiting payment

    on the first try payment works fine, but then it doesnt give success or failure. It just closes after submiting payment

    on the first try payment works fine, but then it doesnt give success or failure. It just closes after submiting payment

    I got this from a url that was in debug console { "error": { "code": "BAD_REQUEST_ERROR", "description": "Input fields not set properly", "source": "business", "step": "payment_initiation", "reason": "input_validation_failed", "metadata": {} } } But why wasnt this shown on the first try? What should i do??

    opened by faisalmushtaq007 27
  • Migrate to NNBD

    Migrate to NNBD

    Description

    As we know that flutter/dart is migrating to null-safety. It would be great if we could get this package migrated. https://medium.com/dartlang/preparing-the-dart-and-flutter-ecosystem-for-null-safety-e550ce72c010

    enhancement 
    opened by SirusCodes 24
  • Module compiled with Swift 5.0 cannot be imported by the Swift 5.1 compiler

    Module compiled with Swift 5.0 cannot be imported by the Swift 5.1 compiler

    iOS build is failing with below exception with new XCODE release Version 11.0. Please update your iOS SDK to 5.1 in Flutter Project. Module compiled with Swift 5.0 cannot be imported by the Swift 5.1 compiler: /ios/Pods/razorpay-pod/Pod/Razorpay.framework/Modules/Razorpay.swiftmodule/x86_64.swiftmodule

    opened by pobyt 24
  • Screen closes and status is PaymentFailure

    Screen closes and status is PaymentFailure

    The error is [INFO:CONSOLE(1)] "Uncaught ReferenceError: otpPermissionCallback is not defined", source: https://api.razorpay.com/v1/checkout/public?version=1.6.4&library=checkoutjs&platform=android (1)

    opened by Aravind-Tamizh 19
  • Can't build iOS app with razorpay_flutter 1.2.1 and XCode 11.5

    Can't build iOS app with razorpay_flutter 1.2.1 and XCode 11.5

    Description

    When i try to run project with razorpay_flutter 1.2.1, This error come out. Can't run the app and can't build the ios app.

    This is error log.

    Xcode build done. 35.8s Failed to build iOS app Error output from Xcode build: ↳ ** BUILD FAILED **

    Xcode's output: ↳ Command CompileSwift failed with a nonzero exit code /Users/username/Library/Developer/flutter/.pub-cache/hosted/pub.dartlang.org/razorpay_flutter-1.2.1/ios/Classes/RazorpayDelegate.swift:4:42: error: 'RazorpayPaymentCompletionProtocolWithData' is unavailable: cannot find Swift declaration for this protocol public class RazorpayDelegate: NSObject, RazorpayPaymentCompletionProtocolWithData, ExternalWalletSelectionProtocol { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Razorpay.RazorpayPaymentCompletionProtocolWithData:2:17: note: 'RazorpayPaymentCompletionProtocolWithData' has been explicitly marked unavailable here public protocol RazorpayPaymentCompletionProtocolWithData { ^ /Users/username/Library/Developer/flutter/.pub-cache/hosted/pub.dartlang.org/razorpay_flutter-1.2.1/ios/Classes/RazorpayDelegate.swift:4:85: error: 'ExternalWalletSelectionProtocol' is unavailable: cannot find Swift declaration for this protocol public class RazorpayDelegate: NSObject, RazorpayPaymentCompletionProtocolWithData, ExternalWalletSelectionProtocol { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Razorpay.ExternalWalletSelectionProtocol:2:17: note: 'ExternalWalletSelectionProtocol' has been explicitly marked unavailable here public protocol ExternalWalletSelectionProtocol { ^ /Users/username/Library/Developer/flutter/.pub-cache/hosted/pub.dartlang.org/razorpay_flutter-1.2.1/ios/Classes/RazorpayDelegate.swift:57:24: error: use of unresolved identifier 'RazorpayCheckout' let razorpay = RazorpayCheckout.initWithKey(key ?? "", andDelegateWithData: self) ^~~~~~~~~~~~~~~~ note: Using new build system note: Building targets in parallel note: Planning build note: Constructing build description

    Flutter Version :

    Flutter 1.17.5 • channel stable • https://github.com/flutter/flutter.git Framework • revision 8af6b2f038 (10 days ago) • 2020-06-30 12:53:55 -0700 Engine • revision ee76268252 Tools • Dart 2.8.4

    Xcode Version :

    Version 11.5 (11E608c)

    Cocoapod Version :

    cocoapods/1.9.3

    • razorpay-pod (1.1.5)
    • razorpay_flutter (1.1.4)

    Steps To Reproduce

    Provide a detailed list of steps that reproduce the issue.

    1. XCode Version 11.5 and Flutter Version 1.17.5
    2. Flutter Razor Pay Lib Version 1.2.1
    3. Just Run or Build iOS ( flutter build ios)
    4. Then error come out.
    opened by thetpaingsoe 19
  • Unable to load Maven meta-data from https://jcenter.bintray.com/com/razorpay/checkout/maven-metadata.xml.

    Unable to load Maven meta-data from https://jcenter.bintray.com/com/razorpay/checkout/maven-metadata.xml.

    Description

    What went wrong: Execution failed for task ':app:checkDebugAarMetadata'.

    Could not resolve all files for configuration ':app:debugRuntimeClasspath'. Could not resolve com.razorpay:checkout:1.6.+. Required by: project :app > project :razorpay_flutter > Failed to list versions for com.razorpay:checkout. > Unable to load Maven meta-data from https://jcenter.bintray.com/com/razorpay/checkout/maven-metadata.xml. > Could not HEAD 'https://jcenter.bintray.com/com/razorpay/checkout/maven-metadata.xml'. > Read timed out

    Flutter (Channel stable, 3.3.6, on macOS 13.0 22A380 darwin-arm, locale en-IN) [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0) [!] Xcode - develop for iOS and macOS (Xcode 14.0.1) razorpay_flutter: ^1.3.3 Screenshot 2022-10-30 at 10 29 25 PM

    opened by swarupbhc 18
  • leaked IntentReceiver - Are you missing a call to unregisterReceiver()

    leaked IntentReceiver - Are you missing a call to unregisterReceiver()

    Description

    I am implementing Razorpay in Flutter. I have done everything perfectly by following code:

    var options = {
          "key" : "rzp_test_hqM123oPlb7W1g",
          "amount" : num.parse(textEditingController.text)*100,
          "name" : "Sample App",
          "description" : "Payment for the some random product",
          "prefill" : {
            "contact" : "2323232323",
            "email" : "[email protected]"
          },
          "external" : {
            "wallets" : ["paytm"]
          }
        };
    
        try{
          razorpay.open(options);
        }catch(e){
          print(e.toString());
        }
    

    But I am getting the following error when I open the Razorpay dialog for the first time. And it's not open the dialog a second time When I tap the button again.

    Activity com.razorpay.CheckoutActivity has leaked IntentReceiver com.razorpay.CheckoutPresenterImpl$1@53b1477 that was originally registered here. Are you missing a call to unregisterReceiver()? E/ActivityThread(30865): android.app.IntentReceiverLeaked: Activity com.razorpay.CheckoutActivity has leaked IntentReceiver com.razorpay.CheckoutPresenterImpl$1@53b1477 that was originally registered here. Are you missing a call to unregisterReceiver()?

    Flutter Version :

    Flutter 1.22.6 • channel stable • https://github.com/flutter/flutter.git Framework • revision 9b2d32b605 (7 weeks ago) • 2021-01-22 14:36:39 -0800 Engine • revision 2f0af37152 Tools • Dart 2.10.5

    AndroidStudio: 4.1.2

    opened by pratikbutani 17
  • import 'dart:js'; error

    import 'dart:js'; error

    Description

    import 'dart:js'; .pub-cache/hosted/pub.dartlang.org/razorpay_flutter-1.2.4/lib/razorpay_flutter.dart:1:8: Error: Not found: 'dart:js'

    Flutter Version :

    1.22.6

    Steps To Reproduce

    Provide a detailed list of steps that reproduce the issue.

    1.install razorpay-flutter and do flutter pub get 2.start flutter run

    Expected Results

    /C:/SDKs/flutters/.pub-cache/hosted/pub.dartlang.org/razorpay_flutter-1.2.4/lib/razorpay_flutter.dart:1:8: Error: Not found: 'dart:js' import 'dart:js'; ^ /C:/SDKs/flutters/.pub-cache/hosted/pub.dartlang.org/razorpay_flutter-1.2.4/lib/razorpay_flutter.dart:91:29: Error: The getter 'context' isn't defined for the class 'Razorpay'.

    • 'Razorpay' is from 'package:razorpay_flutter/razorpay_flutter.dart' ('/C:/SDKs/flutters/.pub-cache/hosted/pub.dartlang.org/razorpay_flutter-1.2.4/lib/razorpay_flutter.dart'). Try correcting the name to the name of an existing getter, or defining a getter or field named 'context'. _eventEmitter.on(event, context, cb); ^^^^^^^ U
      nhandled exception: FileSystemException(uri=org-dartlang-un translatable-uri:dart%3Ajs; message=StandardFileSystem only supports file:* and data:* URIs) #0 StandardFileSystem.entityForUri (package:front_end/src/api_prototype/standard_file_system.dart:33:7) #1 asFileUri (package:vm/kernel_front_end.dart:657:37) #2 writeDepfile (package:vm/kernel_front_end.dart:825:21)
    #3 FrontendCompiler.compile (package:frontend_se rver/frontend_server.dart:572:15) #4 _FlutterFrontendCompiler.compile (package:flutter_frontend_server/server.dart:43:22) #5 starter (package:flutter_frontend_server/server.dart:182:27) #6 main (file:///C:/b/s/w/ir/cache/builder/src/flutter/flutter_frontend_server/bin/starter.dart:9:30) #7 _startIsolate. (dart:isolate-patch/isolate_patch.dart:299:32) #8 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)

    FAILURE: Build failed with an exception.

    • Where: Script 'C:\SDKs\flutters\packages\flutter_tools\gradle\flutter.gradle' line: 904

    • What went wrong: Execution failed for task ':app:compileFlutterBuildDebug'.

    Process 'command 'C:\SDKs\flutters\bin\flutter.bat'' finished with non-zero exit value 1

    • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

    • Get more help at https://help.gradle.org

    BUILD FAILED in 18s Running Gradle task 'assembleDebug'... Running Gradle task 'assembleDebug'... Done 19.0s Exception: Gradle task assembleDebug failed with exit code 1

    Flutter Doctor -v

    D:\fad>flutters doctor -v [√] Flutter (Channel stable, 1.22.6, on Microsoft Windows [Version 10.0.19042.804], locale en-IN) • Flutter version 1.22.6 at C:\SDKs\flutters • Framework revision 9b2d32b605 (4 weeks ago), 2021-01-22 14:36:39 -0800 • Engine revision 2f0af37152 • Dart version 2.10.5

    [√] Android toolchain - develop for Android devices (Android SDK version 30.0.2) • Android SDK at C:\Users\sambitraze\AppData\Local\Android\Sdk • Platform android-30, build-tools 30.0.2 • ANDROID_HOME = C:\Users\sambitraze\AppData\Local\Android\Sdk • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01) • All Android licenses accepted.

    [!] Android Studio (version 4.1.0) • Android Studio at C:\Program Files\Android\Android Studio X Flutter plugin not installed; this adds Flutter specific functionality.
    X Dart plugin not installed; this adds Dart specific functionality. • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)

    [√] VS Code (version 1.53.2) • VS Code at C:\Users\sambitraze\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.19.0

    [√] Connected device (1 available) • Redmi Note 8 Pro (mobile) • 192.168.1.101:5555 • android-arm64 • Android 10 (API 29)

    ! Doctor found issues in 1 category.

    opened by sambitraze 17
  • ios build fail

    ios build fail

    Build failed on ios but works perfectly on android. Please help needed to integrate in ios as soon as possible.

    CocoaPods' output:

    ↳ Preparing Analyzing dependencies Inspecting targets to integrate Using ARCHS setting to build architectures of target Pods-Runner: (``) Finding Podfile changes - Flutter - fluttertoast - path_provider - razorpay_flutter - shared_preferences Fetching external sources -> Fetching podspec for Flutter from .symlinks/flutter/ios -> Fetching podspec for fluttertoast from .symlinks/plugins/fluttertoast/ios -> Fetching podspec for path_provider from .symlinks/plugins/path_provider/ios -> Fetching podspec for razorpay_flutter from .symlinks/plugins/razorpay_flutter/ios -> Fetching podspec for shared_preferences from .symlinks/plugins/shared_preferences/ios Resolving dependencies of Podfile CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only perfomed in repo update CDN: trunk Relative path: all_pods_versions_f_9_d.txt exists! Returning local because checking is only perfomed in repo update CDN: trunk Relative path: CocoaPods-version.yml exists! Returning local because checking is only perfomed in repo update ――― MARKDOWN TEMPLATE ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― ### Command /usr/local/bin/pod install --verbose plugin = line.split(pattern=separator) if plugin.length == 2 podname = plugin[0].strip() path = plugin[1].strip() podpath = File.expand_path("#{path}", file_abs_path) pods_ary.push({:name => podname, :path => podpath}); else puts "Invalid plugin specification: #{line}" end } return pods_ary end target 'Runner' do use_frameworks! # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock # referring to absolute paths on developers' machines. system('rm -rf .symlinks') system('mkdir -p .symlinks/plugins') # Flutter Pods generated_xcode_build_settings = parse_KV_file('./Flutter/Generated.xcconfig') if generated_xcode_build_settings.empty? puts "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first." end generated_xcode_build_settings.map { |p| if p[:name] == 'FLUTTER_FRAMEWORK_DIR' symlink = File.join('.symlinks', 'flutter') File.symlink(File.dirname(p[:path]), symlink) pod 'Flutter', :path => File.join(symlink, File.basename(p[:path])) end } /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:746:in `require_nested_dependencies_for' /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:729:in `activate_new_spec' /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:686:in `attempt_to_activate' /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:254:in `process_topmost_state' /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolution.rb:182:in `resolve' /Library/Ruby/Gems/2.6.0/gems/molinillo-0.6.6/lib/molinillo/resolver.rb:43:in `resolve' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/resolver.rb:94:in `resolve' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer/analyzer.rb:986:in `block in resolve_dependencies' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/user_interface.rb:64:in `section' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer/analyzer.rb:984:in `resolve_dependencies' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer/analyzer.rb:124:in `analyze' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer.rb:410:in `analyze' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer.rb:234:in `block in resolve_dependencies' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/user_interface.rb:64:in `section' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer.rb:233:in `resolve_dependencies' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/installer.rb:156:in `install!' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/command/install.rb:52:in `run' /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:334:in `run' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/lib/cocoapods/command.rb:52:in `run' /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.8.4/bin/pod:55:in `<top (required)>' /usr/local/bin/pod:23:in `load' /usr/local/bin/pod:23:in `<main>' ――― TEMPLATE END ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― [!] Oh no, an error occurred. Search for existing GitHub issues similar to yours: https://github.com/CocoaPods/CocoaPods/search?q=invalid+byte+sequence+in+US-ASCII&type=Issues If none exists, create a ticket, with the template displayed above, on: https://github.com/CocoaPods/CocoaPods/issues/new Be sure to first read the contributing guide for details on how to properly submit a ticket: https://github.com/CocoaPods/CocoaPods/blob/master/CONTRIBUTING.md Don't forget to anonymize any private data! Looking for related issues on cocoapods/cocoapods... - Pod install fails on invalid byte sequence while having LANG=en_US.UTF-8 in profile https://github.com/CocoaPods/CocoaPods/issues/5780 [closed] [6 comments] 2 weeks ago - Pod Install failed https://github.com/CocoaPods/CocoaPods/issues/9222 [closed] [3 comments] 7 weeks ago - Error while setting up CocoaPods https://github.com/CocoaPods/CocoaPods/issues/5979 [closed] [23 comments] 06 Dec 2018 and 15 more at: https://github.com/cocoapods/cocoapods/search?q=invalid%20byte%20sequence%20in%20US-ASCII&type=Issues&utf8=✓ Error output from CocoaPods: ↳ WARNING: CocoaPods requires your terminal to be using UTF-8 encoding. Consider adding the following to ~/.profile: export LANG=en_US.UTF-8

    Error running pod install

    flutter doctor

    Doctor summary (to see all details, run flutter doctor -v): [✓] Flutter (Channel stable, v1.9.1+hotfix.6, on Mac OS X 10.15.1 19B88, locale en-IN)

    [!] Android toolchain - develop for Android devices (Android SDK version 29.0.0) ! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses [✓] Xcode - develop for iOS and macOS (Xcode 11.2.1) [✓] Android Studio (version 3.5) [✓] VS Code (version 1.40.2) [✓] Connected device (2 available)

    ! Doctor found issues in 1 category.

    opened by rahuldange09 16
  • type 'String' is not a subtype of type 'Map<dynamic, dynamic>?' in type cast

    type 'String' is not a subtype of type 'Map?' in type cast

    Description

    Facing issue when I am trying to launch the razorpay checkout activity using "razorpay.open(options)".its showing razorpay loading screen and closing razorpay screen immediately.

    • Razorpay Package version : 1.3.4
    • Android Emulator version : Pixel_3a_API_31
    • Mode : Debug

    Flutter Version :

    Flutter 3.0.0 • channel stable • https://github.com/flutter/flutter.git Framework • revision ee4e09cce0 (7 months ago) • 2022-05-09 16:45:18 -0700 Engine • revision d1b9a6938a Tools • Dart 2.17.0 • DevTools 2.12.2

    Xcode Version :

    14.1 (14B47b)

    LOG:

    [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: type 'String' is not a subtype of type 'Map<dynamic, dynamic>?' in type cast #0 PaymentFailureResponse.fromMap (package:razorpay_flutter/razorpay_flutter.dart:150:44) #1 Razorpay._handleResult (package:razorpay_flutter/razorpay_flutter.dart:72:42) #2 Razorpay.open (package:razorpay_flutter/razorpay_flutter.dart:54:5)

    E/ActivityThread( 2973): Activity com.razorpay.CheckoutActivity has leaked IntentReceiver com.razorpay.E$_q$@3d138fb that was originally registered here. Are you missing a call to unregisterReceiver()? E/ActivityThread( 2973): android.app.IntentReceiverLeaked: Activity com.razorpay.CheckoutActivity has leaked IntentReceiver com.razorpay.E$_q$@3d138fb that was originally registered here. Are you missing a call to unregisterReceiver()? at android.app.LoadedApk$ReceiverDispatcher.(LoadedApk.java:1717) at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:1494) at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1757) at android.app.ContextImpl.registerReceiver(ContextImpl.java:1723) at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:736) at com.razorpay.O$_M$.onFinish(CheckoutPresenterImpl.java:889) at android.os.CountDownTimer$1.handleMessage(CountDownTimer.java:142) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7839) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)

    Options :

    var options = { 'key': 'xxxxxxxxxxxx', 'amount': 9900, 'name': 'RazorPay Flutter', 'prefill': {'contact': '1234567890', 'email': '[email protected]'}, 'retry': {'enabled': true, 'max_count': 1}, 'send_sms_hash': true, 'subscription_id': 'sub_id', 'external': { 'wallets': ['paytm'] } };

    opened by msai0109 1
  • Update pubspec.yaml

    Update pubspec.yaml

    Because razorpay_flutter 1.3.4 depends on package_info_plus ^1.3.0 and no versions of razorpay_flutter match >1.3.4 <3.0.2, razorpay_flutter ^1.3.4 requires package_info_plus ^1.3.0.

    opened by raaja-guidely 0
  • Razorpay Freezes at start of Checkout Activity after upgrade to 1.3.4 in Flutter

    Razorpay Freezes at start of Checkout Activity after upgrade to 1.3.4 in Flutter

    Description

    The bug is triggered when I launch the razorpay checkout activity using "razorpay.open(options)". It first leads to a grey screen with the razorpay loader but is stuck on that screen eventually showing a blank white screen.

    Attaching screenshots for clarity.

    Flutter Version :

    Flutter 3.3.8 • channel stable • https://github.com/flutter/flutter.git Framework • revision 52b3dc25f6 (13 days ago) • 2022-11-09 12:09:26 +0800 Engine • revision 857bd6b74c Tools • Dart 2.18.4 • DevTools 2.15.0

    blankScreen clip.webm LoadingScreenBeyond which it does not go

    Log output between checkout initiation and appearance of white screen

    I/FIAM.Display(10418): Unbinding from activity: MainActivity I/FIAM.Headless(10418): Removing display event component D/AutofillManager(10418): Fill dialog is enabled:false, hints=[password, passwordAuto, creditCardNumber, creditCardSecurityCode, creditCardExpirationDate] D/EGL_emulation(10418): eglCreateContext: 0xb400007cfee59d10: maj 3 min 0 rcv 3 I/FIAM.Display(10418): Binding to activity: com.razorpay.CheckoutActivity I/FIAM.Headless(10418): Setting display event component W/Parcel (10418): Expecting binder but got null! W/Parcel (10418): Expecting binder but got null! D/EGL_emulation(10418): app_time_stats: avg=8.74ms min=2.26ms max=28.64ms count=62 D/EGL_emulation(10418): app_time_stats: avg=33.24ms min=5.52ms max=867.50ms count=41 D/EGL_emulation(10418): app_time_stats: avg=3.80ms min=2.17ms max=7.81ms count=61 D/EGL_emulation(10418): app_time_stats: avg=3.86ms min=2.28ms max=8.07ms count=59 D/EGL_emulation(10418): app_time_stats: avg=3.50ms min=2.13ms max=8.71ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.73ms min=2.14ms max=3.51ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.69ms min=1.41ms max=3.81ms count=60 D/EGL_emulation(10418): app_time_stats: avg=3.23ms min=1.15ms max=8.55ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.62ms min=2.17ms max=3.51ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.67ms min=1.75ms max=3.69ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.67ms min=2.06ms max=3.22ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.65ms min=2.08ms max=3.49ms count=61 D/EGL_emulation(10418): app_time_stats: avg=3.38ms min=1.28ms max=27.39ms count=56 D/EGL_emulation(10418): app_time_stats: avg=2.73ms min=1.23ms max=4.33ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.66ms min=1.21ms max=3.45ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.72ms min=2.17ms max=7.33ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.64ms min=2.07ms max=4.35ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.68ms min=2.19ms max=3.51ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.93ms min=2.20ms max=5.56ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.65ms min=1.78ms max=3.47ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.65ms min=2.21ms max=3.31ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.65ms min=2.13ms max=3.43ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.64ms min=2.06ms max=3.58ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.63ms min=1.20ms max=3.79ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.63ms min=1.95ms max=3.46ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.63ms min=1.89ms max=3.35ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.70ms min=2.23ms max=3.56ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.58ms min=1.18ms max=3.17ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.63ms min=1.07ms max=3.48ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.70ms min=2.11ms max=5.82ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.66ms min=2.08ms max=3.40ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.59ms min=2.23ms max=3.57ms count=60 D/EGL_emulation(10418): app_time_stats: avg=1816.39ms min=15.38ms max=30612.95ms count=17 D/EGL_emulation(10418): app_time_stats: avg=2.92ms min=2.10ms max=21.82ms count=59 D/EGL_emulation(10418): app_time_stats: avg=9.79ms min=1.00ms max=18.53ms count=62 D/EGL_emulation(10418): app_time_stats: avg=2.64ms min=2.01ms max=3.32ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.57ms min=1.94ms max=3.18ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.61ms min=2.06ms max=3.68ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.62ms min=1.92ms max=3.42ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.66ms min=2.11ms max=3.53ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.62ms min=2.17ms max=3.35ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.71ms min=2.05ms max=4.01ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.60ms min=2.10ms max=3.42ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.62ms min=1.23ms max=3.33ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.57ms min=2.11ms max=3.41ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.63ms min=2.20ms max=3.60ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.69ms min=2.15ms max=3.84ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.71ms min=2.21ms max=4.29ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.64ms min=2.12ms max=3.27ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.68ms min=1.96ms max=3.48ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.68ms min=2.22ms max=3.82ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.65ms min=2.19ms max=3.29ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.60ms min=1.03ms max=3.59ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.61ms min=2.17ms max=3.43ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.58ms min=0.99ms max=3.66ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.66ms min=1.07ms max=3.60ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.68ms min=2.28ms max=4.04ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.75ms min=2.27ms max=3.79ms count=60 D/EGL_emulation(10418): app_time_stats: avg=3.08ms min=1.53ms max=6.90ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.62ms min=2.07ms max=3.20ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.65ms min=1.01ms max=3.61ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.68ms min=2.10ms max=3.39ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.70ms min=2.13ms max=3.58ms count=60 D/EGL_emulation(10418): app_time_stats: avg=2.63ms min=1.68ms max=3.45ms count=61 D/EGL_emulation(10418): app_time_stats: avg=2.73ms min=2.19ms max=3.78ms count=61 D/EGL_emulation(10418): app_time_stats: avg=963.04ms min=5.66ms max=31569.13ms count=33

    opened by napcraft 4
  • when open razorpay sdk while i doing payment and press home button on android device and come to application using app icon rasorpay sdk was getting close and give error response...but while i come back from recent activity it is working fine....

    when open razorpay sdk while i doing payment and press home button on android device and come to application using app icon rasorpay sdk was getting close and give error response...but while i come back from recent activity it is working fine....

    when open razorpay sdk while i doing payment and press home button on android device and come to application using app icon rasorpay sdk was getting close and give error response...but while i come back from recent activity it is working fine.... it is working on ios but in andoid has occurs this issue.

    aslo while open sdk and press home button flutter lifecycle was not getting any response when razorpay sdk is not open then give response from flutter lifecycles.

    opened by drpatel16 1
  • When Opening a razorpay payment screen receiving alert on the log and everything is working fine, but some time device is crashing after successful completion of payment

    When Opening a razorpay payment screen receiving alert on the log and everything is working fine, but some time device is crashing after successful completion of payment

    Please provide all the information requested. Issues that do not follow this format are likely to stall.

    Description

    When Opening a Razorpay payment screen receiving alert on the log and everything is working fine, but some time device is crashing after the successful completion of the payment

    Flutter Version :

    flutter version: 3.3.4

    Error receiving on log....

    Activity com.razorpay.CheckoutActivity has leaked IntentReceiver com.razorpay.O_$v$@521d57b that was originally registered here. Are you missing a call to unregisterReceiver()? E/ActivityThread(10667): android.app.IntentReceiverLeaked: Activity com.razorpay.CheckoutActivity has leaked IntentReceiver com.razorpay.O_$v$@521d57b that was originally registered here. Are you missing a call to unregisterReceiver()?

    Expected Results

    Describe what you expected to happen.

    Snack, code example, screenshot, or link to a repository:

    Please provide a link to a repository on GitHub, or provide a minimal code example that reproduces the problem. You may provide a screenshot of the application if you think it is relevant to your bug report. Here are some tips for providing a minimal example: https://stackoverflow.com/help/mcve

    opened by amandwivedi07 1
Releases(v1.3.4)
  • v1.3.4(Nov 3, 2022)

    What's Changed

    • B/jcenter deprecation by @vivekshindhe in https://github.com/razorpay/razorpay-flutter/pull/282

    Full Changelog: https://github.com/razorpay/razorpay-flutter/compare/v1.3.3...v1.3.4

    Source code(tar.gz)
    Source code(zip)
  • v1.3.3(Oct 18, 2022)

    What's Changed

    • Bug fix - CE-6729 by @ramprasadAnand in https://github.com/razorpay/razorpay-flutter/pull/272
    • Variable name updated by @ramprasadAnand in https://github.com/razorpay/razorpay-flutter/pull/274
    • downgraded the package_info_plus version by @vivekshindhe in https://github.com/razorpay/razorpay-flutter/pull/276
    • removed e.printStackTrace by @vivekshindhe in https://github.com/razorpay/razorpay-flutter/pull/277
    • upgraded flutter min version to 2.12.0 for nullable flutter by @vivekshindhe in https://github.com/razorpay/razorpay-flutter/pull/278
    • support version changes by @vivekshindhe in https://github.com/razorpay/razorpay-flutter/pull/279

    Full Changelog: https://github.com/razorpay/razorpay-flutter/compare/v1.3.2...v1.3.3

    Source code(tar.gz)
    Source code(zip)
  • v1.3.2(Jul 26, 2022)

  • v1.3.1(Jul 25, 2022)

  • 1.3.0(Apr 5, 2022)

  • v1.2.0(May 16, 2020)

  • v1.1.3(Apr 8, 2020)

    This release is mainly focused on Razorpay's iOS framework module stability. Now in future, we don't have to update it, again and again when every time Apple launches a new Swift version.

    Source code(tar.gz)
    Source code(zip)
Owner
Razorpay
Neobanking for Businesses
Razorpay
This is just the simplyfied Flutter Plugin use for one of the popular flutter plugin for social media login.

social_media_logins Flutter Plugin to login via Social Media Accounts. Available Social Media Logins: Facebook Google Apple Getting Started To use thi

Reymark Esponilla 3 Aug 24, 2022
Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.

Flutter permission_handler plugin The Flutter permission_handler plugin is build following the federated plugin architecture. A detailed explanation o

Baseflow 1.7k Dec 31, 2022
Unloc customizations of the Permission plugin for Flutter. This plugin provides an API to request and check permissions.

Flutter Permission handler Plugin A permissions plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check perm

Unloc 1 Nov 26, 2020
Klutter plugin makes it possible to write a Flutter plugin for both Android and iOS using Kotlin only.

The Klutter Framework makes it possible to write a Flutter plugin for both Android and iOS using Kotlin Multiplatform. Instead of writing platform spe

Gillian 33 Dec 18, 2022
A Flutter step_tracker plugin is collect information from user and display progress through a sequence of steps. this plugin also have privilege for fully customization from user side. like flipkart, amazon, myntra, meesho.

step_tracker plugin A Flutter step_tracker plugin is collect information from user and display progress through a sequence of steps. this plugin also

Roshan nahak 5 Oct 21, 2022
Boris Gautier 1 Jan 31, 2022
A Side Menu plugin for flutter and compatible with liquid ui for flutter

Liquid Shrink Side Menu A Side Menu plugin for flutter and compatible with liquid ui Side Menu Types There are 8 configuration of Liquid shrink side m

Raj Singh 18 Nov 24, 2022
FlutterBoost is a Flutter plugin which enables hybrid integration of Flutter for your existing native apps with minimum efforts

中文文档 中文介绍 Release Note v3.0-preview.17 PS: Before updating the beta version, please read the CHANGELOG to see if there are any BREAKING CHANGE Flutter

Alibaba 6.3k Dec 30, 2022
Flutter Counter is a plugin written in dart for flutter which is really simple and customizeable.

Flutter Counter (iOS & Android) Description Flutter Counter is a plugin written in dart for flutter which is really simple and customizeable. Create i

Salmaan Ahmed 15 Sep 18, 2022
Flutter simple image crop - A simple and easy to use flutter plugin to crop image on iOS and Android

Image Zoom and Cropping plugin for Flutter A simple and easy used flutter plugin to crop image on iOS and Android. Installation Add simple_image_crop

null 97 Dec 14, 2021
Flutter-ffmpeg - FFmpeg plugin for Flutter. Not maintained anymore. Superseded by FFmpegKit.

flutter_ffmpeg FFmpeg plugin for Flutter. Supports iOS and Android. Not maintained anymore, superseded by FFmpegKit. See FlutterFFmpeg to FFmpegKit Mi

Taner Şener 635 Dec 22, 2022
Rave flutter - A Flutter plugin for Flutterwaves's rave.

Rave Flutter A robust Flutter plugin for accepting payment on Rave with Card Nigerian Bank Account ACH Payments Mobile money Francophone Africa Mpesa

Wilberforce Uwadiegwu 30 Oct 6, 2022
A flutter plugin to add login with facebook in your flutter app

Features Login on iOS, Android and Web. Express login on Android. Granted and declined permissions. User information, picture profile and more. Provid

Darwin Morocho 157 Jan 6, 2023
Flutter blue plus - Flutter plugin for connecting and communicationg with Bluetooth Low Energy devices, on Android and iOS

Introduction FlutterBluePlus is a bluetooth plugin for Flutter, a new app SDK to

null 141 Dec 22, 2022
This is a Flutter plugin that takes a JSON string and converts it onto a customizable Flutter Widget.

Colored JSON Convert JSON string into customizable widget. Getting Started ColoredJson is a stateless widget that produces a structured view of JSON s

null 4 May 20, 2022
Flutter plugin to manage home screen widget within flutter app.

Flutter App Widget App Widget / Home Screen widget plugin for flutter app Usage Please see app_widget subdirectory for the usage documentation. Plafor

Alexander Dischberg 6 Dec 16, 2022
Flutter plugin for creating static & dynamic app shortcuts on the home screen.

Flutter Shortcuts Show some ❤️ and ⭐ the repo Why use Flutter Shortcuts? Flutter Shortcuts Plugin is known for : Flutter Shortcuts Fast, performant &

Divyanshu Shekhar 39 Sep 26, 2022
Flutter plugin for selecting images from the Android and iOS image library, taking new pictures with the camera, and edit them before using such as rotation, cropping, adding sticker/text/filters.

advance_image_picker Flutter plugin for selecting multiple images from the Android and iOS image library, taking new pictures with the camera, and edi

Weta Vietnam 91 Dec 19, 2022