I'm currently trying to implement mollie payment into the flutter framework. For that I want to build a plugin in Java. So mollie has a very good documentation how to implement their API into an android app with Java. So the problem is when I hit the payment button in my app the browser opens with the correct checkout page. After the customer select his preferred payment method mollie goes back to my app, but I always get a empty query...

So this is my code for the flutter plugin

public class MolliePlugin implements MethodCallHandler, PluginRegistry.ActivityResultListener {

  Activity activity;
  Result activeResult;
  Context context;
  Intent intent;
  boolean getData;
  private static final int REQUEST_CODE = 0x1337;

  MolliePlugin(Registrar registrar){

    activity = registrar.activity();

  /** Plugin registration. */
  public static void registerWith(Registrar registrar) {
    final MethodChannel channel = new MethodChannel(registrar.messenger(), "mollie");
    channel.setMethodCallHandler(new MolliePlugin(registrar));


  public void onMethodCall(MethodCall call, Result result) {

    if (call.method.equals("startPayment")) {

      activeResult = result;
      String checkout = call.argument("checkoutUrl");

    else {


/// Start the browser switch with a ACTION_VIEW
  void startPayment(String checkoutUrl) {

    Intent browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(checkoutUrl));


So in the docs of mollie is written that I have to put the following code into the onCreate() function in my MainActivity:

public void onCreate(Bundle savedInstanceState)


      Intent intent = getIntent();

      if (Intent.ACTION_VIEW.equals(intent.getAction())) {
            Uri uri = intent.getData();
            String paymentId = uri.getQueryParameter("id");

            // Optional: Do stuff with the payment ID

So when I put this into the onCreate() in my MainActivity of my Flutter app I get always an ACTION_RUN back after I was routed back to my app. So I used the onNewIntent() function which gives me the correct action after coming back to my app (any ideas why?):

public class MainActivity extends FlutterActivity {
  protected void onCreate(Bundle savedInstanceState) {


  protected void onNewIntent(Intent intent) {


    Log.d("Action is: ",intent.getAction());

    String paymentId = "No Id";

    if (Intent.ACTION_VIEW.equals(intent.getAction()) && intent != null) {
      Uri uri = intent.getData();
// This has no data...
      Log.d("query ",intent.getDataString());
      paymentId = uri.getQueryParameter("id");

      // Optional: Do stuff with the payment ID



So here I get an empty query. the intent.getData() only returns my returnUrl which I have to set up in my AndroidManifest (see below). The returnUrl works fine but it has no data included after checking out and swichting back to the app...

My AndroidManifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

    <!-- io.flutter.app.FlutterApplication is an android.app.Application that
         calls FlutterMain.startInitialization(this); in its onCreate method.
         In most cases you can leave this as-is, but you if you want to provide
         additional functionality it is fine to subclass or reimplement
         FlutterApplication and put your custom class here. -->
            <!-- This keeps the window background of the activity showing
                 until Flutter renders its first frame. It can be removed if
                 there is no splash screen (such as the default splash screen
                 defined in @style/LaunchTheme). -->
                android:value="true" />
                    android:scheme="molli" />
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />

Any ideas what I'm doing wrong?