In-App Purchases, Billing Keys and Steak

  • Cocoon Version:
    ‘Latest’ before 3.0 update took the compiler down for maintenance.

  • Basic description of the problem:
    I’m testing out the demo app for Cocoon’s own IAPs plugin, which I think is called Valentia.
    I have added my own products, changed the package name and successfully uploaded to the Playstore.
    Upon downloading the app from Playstore, I am not able to Fetch Products from the store or view any of the IAPs I have created.

One possible cause is that I haven’t included my Billing Key anywhere in the app or config file.
I have looked around the documentation and I can’t see where this key would be added.
Any information about where to add my billing key would be appreciated.
If you have no idea about IAPs or billing keys, I’m also keen to know what you like to drink when you eat steak. I usually go for a red wine, sometimes switching it up with a dark beer.

  • Device info:
    Android, API level 18

  • Steps will reproduce the problem:

  1. Compile the app in Webview+
  2. Upload to Playstore then install on device.
  3. Run and click Fetch Products.
  4. Squeal in indignant frustration when nothing appears.
  • Webview engine(s):
    I haven’t tried the others, as I need Webview+ to ultimately incorporate the IAPs in my game made using CreateJS.

  • Used plugins (if relevant):

1 Like

Little update which might shed further light on my situation.

I am able to upload the compiled app to Playstore, but when I upload the APK I receive this message:

You uploaded an APK or Android App Bundle that does not have BILLING permission, or has a BILLING permission that is limited to specific sdk versions. BILLING permission is required for selling in-app products.

Does this indicate that the IAP plugin may only work for a limited range of SDK levels?

In Construct 2, the plugin “CocoonIAP” does add the billing permission to the game / app. So this is nothing to add in your cocoon project.
I’m not sure how this works when you code your game in CreateJS, though.


Hi Andy, thanks for responding.

I am writing my game in HTML Javascript, using CreateJS as my graphics and sound plugin.
I have added the CocoonIAP plugin when I use the online compiler.
Is there an extra permission I need to add manually in the config.xml file?

The config file already includes and cordova-plugin-whitelist, but nothing which clearly states a billing permission.
Perhaps the plugin only works when added in Construct.



basically the plugin should add the permission it self when you using it.
Please see this “plugin.xml” file from the “InApp” Plugin.

<config-file target="app/src/main/AndroidManifest.xml" parent="/manifest">
            <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
            <uses-permission android:name="" />

So, once you install the " In-App Purchases for Google Play" in your cocoon project, it will add the BILLING permission to your apk.

You find the plugin at “Settings -> Plugins -> Cocoon”


Have you been able to export a build since 3.0.0 update with working IAP? I also have a project built in C2 and I had IAP working fine before and now they will not work with the exact same configuration, having the plugin installed in cocoon. I’m also getting the billing error from google play. This is beyond frustrating.

Yes, I have also problems to built at the moment with WebView+, but Canvas+ is working (at least it was yesterday). I’m using “latest”, what should be 2.3.0 as far as I can remember.

What error do you get for your build?


Will try it in Canvas+ on those configurations.
I don’t get an error in the compiler, and it compiles without problems.
However, when the APK is uploaded in the Console it states that Billing permission is missing.
The app also sticks on “loading…” when you start it on device.

I don’t have any lines like that added in my config.xml.
This is on a HTML-only app, not made in Construct.
The only relevant lines in my config file are the plugin name and BILLING_ID parameter.

Thanks for keeping us informed @andy_reitberger, and thanks @nlb.nathan for showing me I’m not the only one.

Yeah, like cyril said I’m not getting any compilation errors, but billing permission is no longer added and IAPs don’t work. Does your C2 export have billing permission when you upload it to google play? @andy_reitberger

Has anyone had successful IAP with google play working after update? Would it be possible to compile with the old version now? This is breaking my project :confused:

Hi there,
I have the same problem, but I use cc.fovea.cordova.purchase… before several months, my IAP works… Now,
When users are trying to purchase, nothing happens, I tried different version of this plugin … Any idea ?

Yes it had it before. But my last build has been a while.
So maybe this is associated with the new update of the plugin and the current issues it brings with it.

Have you tried to select an older version of cocoon and of the ads plugin?

You can try this fix:

The compiler will then use an older version.

Has anyone been able to get iap working now? I seem to be facing the same issue “To add in-app products, you need to add the BILLING permission to your APK.”… weird enough it was fine for my prior app

1 Like

Basically the “Coccoon Inapp” plugins, listed below, should add the biling persmission automatically.

	<plugin name="cocoon-plugin-inapps-ios-appstore" spec="*"/>
	<plugin name="cocoon-plugin-inapps-android-googleplay" spec="*"/>

If this is not the case anymore, maybe it’s a problem of the latest version. So to test this, you can specify an older version in the “spec=”"" tag.

You find all versions here.

I suggest yo to try this version.

<plugin name="cocoon-plugin-inapps-android-googleplay" spec="1.0.2"/>

Let me know if it worked out for you.


Hey and yea i managed to figure it out before by downgrading the cocoon inapps seems its having the same issue as the new admob update thank you for the help

@Blue_Sialia any chance to check this out? Maybe it’s just that the dependencies are missing here as well.


As I know, the most problems are from google service like iap and play service. We can’t use that until @Blue_Sialia really fix it. We still can use admob service.

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.