Ultimate IAP (Plugins)

  • (UPDATE) Ultimate IAP update v1.1 is now available.

    New condition added:

    • Has product - True if (non-consumable) product has been purchased in the past.
  • At first I was really enjoying implementing this plugin, but things just don't appear to be working out for me.

    I've been chatting to the developer about it via email, but felt I was taking up too much time, so figured I'd open it up to the forum.

    I was originally using the default IAP that comes with Construct 2, and while I was getting perfect results with Android, the app was crashing with iOS. So I saw this plugin was said to work everywhere and with PhoneGap, which I use. I made all the changes and uploaded the app to the Android Play Store.

    I was able to purchase the IAP, but noted that after I refunded the purchase, the player was still able to access the content even though the no longer owned the IAP.

    The game defaults to the IAP not being purchased, then runs a quick check to see if they own it. If they own it, the content is unlocked, otherwise, it isn't.

    The developer recommended that I make use of the "Restore Purchases" action and event, but that's caused an unusual effect that (for some reason) no longer checks whether or not the purchase has been made, so the game's IAP doesn't appear to be purchased. However, upon touching the button to make the purchase, the game suddenly refreshes and unlocks the content.

    I'm reverting back to my code prior to using the "Restore Purchases" events, but I wonder if anyone could have a look at my events and let me know what I'm doing wrong.

  • At first I was really enjoying implementing this plugin, but things just don't appear to be working out for me.

    Hi AnD4D, I'm sorry to hear this plugin doesn't work for you while it works for nearly 100 other people who use it. I'm happy to help but it's just hard without seeing the exact process you do to build an app, so I'll be guessing a bit.

    You also mentioned in the email that next to the IAP, you also have a problem with setting up the AdMob plugin. The good news is that I have made (also many of my customers) many apps with IAP and Ads implemented and it worked perfectly fine both for Android and iOS which apparently proves that all works fine if you set things up properly. Now we just need to find out what's the issue with your setup.

    Implementing the Ads properly should be very clear as there is a complete video series for Ultimate Ads (AdMob) available.

    Unfortunately, I haven't ordered video tutorials for Ultimate IAP yet. Tutorials made by professional tutor costs a bit so this will have to wait.

    In a meantime could you tell me few things:

    1. Does your issue appear both on iOS and Android?

    2. Have you tested on any other smartphone?

    3. How did you refund the product (process and platform)?

    4. Was it a Google test product or a regular product and if so what type of product was it?

    5. Do you have your Google Wallet setup completed?

    Products are managed by Google Play and it's Google's database that tells whether the product is purchased or not for the particular amount. So if the "has product" returns true after refunding or the purchase button instantly triggers successful purchase, then it means that the product has not been refunded in the Google's database. The plugin itself does not have a refund action and it does not store any refund nor purchase related data. It's just the API for Google services.

  • Thanks for your reply.

    Glad to hear your product's doing so well. I imagine it's something I'm doing wrong, but can't see it exactly. I'll do my best to answer your questions.

    1. Does your issue appear both on iOS and Android?

    I was originally using the official Scirra IAP plugin which was working perfectly for Android, but was broken for iOS (It crashed the app when called). When I implemented your plugin in the same manner, the Android version worked, but seemed to "forget" whether or not the IAP was purchased. I like to get Android working before I move over to iOS seeing as it's such a chore to do.

    2. Have you tested on any other smartphone?

    I've tested on 4 smartphones. All have the same issue, apart from one which has not upgraded to the new build, and so it is working perfectly as it's using the old plugin.

    3. How did you refund the product (process and platform)?

    I refunded the IAP using Google Play's Order Management section, so Android.

    4. Was it a Google test product or a regular product and if so what type of product was it?

    The app is set to closed alpha, and I have some test accounts that attempt the purchase. It's non-consumable.

    5. Do you have your Google Wallet setup completed?

    Yes.

    The image above demonstrates the manner in which I'm implementing your plugin, but I acknowledge it's not exactly showing much of my code. I'm happy to send the capx over to you, but would hate to be even more of a pain.

    This is the first time I'll be releasing an app for mobiles that includes IAP, so I expected a few stumbling blocks, but the fact that this is more challenging than releasing a game for the Wii U is very surprising. I'm determined to ensure that I can use PhoneGap to do all versions at once, which is actually working quite well for me after I separated each line as the following:

    <platform name="android">
    <plugin name="cocoon-plugin-inapps-android-googleplay" />
    </platform>
    <platform name="ios">
    <plugin name="cocoon-plugin-inapps-ios-appstore" />
    </platform>
    [/code:ug3tajk0]
    
    I've obviously cut out other app related code, such as the icons and additional plugins.
    
    The IAP In my app, is designed to set a boolean to 0 (no ads) or 1 (show ads). It's set to see if the IAP is purchased, and if it is, the boolean is set to 0. It's quite simple, so I can't see why this plugin is working differently to the official plugin. As I said, when I added in the "Restore Purchases" events and actions, it caused additional problems.
    
    The official AdMob plugin is causing a strange resizing issue with my devices, and the Interstitial ads aren't working at all with iOS, so as soon as I hear back from Scirra, I'll hopefully be picking up your ad plugin as well.
    
    Hope I'm not too all over the place.
  • Still having trouble with this. Again, this is now working fine on Android, but iOS does nothing when the same code is triggered. I push the button, and nothing happens.

    I've completely restructured the code and put it all in one place so it's easier for people to understand.

    Can anyone see what I'm doing wrong? Seeing as there are almost 100 people who got it working, can anyone share a screenshot of their app's code, which works perfectly on iOS?

    That'd be really appreciated!

  • Hmmm... I thought about your case AnD4D but I can't figure why it gives you any issues. I'd like to help but I just don't know what's wrong in your case.

    I believe you ensured that you use cocoon-plugin-inapps-ios-appstore for iOS build, not the cocoon-plugin-inapps-android-googleplay.

    But your code snippet seems not to be the best. On event 1 you Initialize the IAP and then on event 9 you restart the layout. Which means that once the product is purchased the layout will keep restarting all the time. Maybe this gives some unexpected behavior for you?

  • Yeah, I made a quick change to the code and noticed that glitch right after I posted it. It was a copy/paste from the above. It's now removed, but unfortunately the error still occurs.

    Now, I have separated the "cocoon-plugin-inapps-ios-appstore" and the "cocoon-plugin-inapps-android-googleplay" code into separate sections within the xml, so each plugin is only called when played on a certain device, but you may very well be correct in saying that could be the error. I'll give it a go and see if it resolves anything.

  • Oh, by the way. I picked up Ultimate Ads as well (finally) and it's running very well. It's really nice having the ability to do reward ads, which aren't available in the original Scirra version.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Oh, by the way. I picked up Ultimate Ads as well (finally) and it's running very well. It's really nice having the ability to do reward ads, which aren't available in the original Scirra version.

    Great, glad to hear that Ads work well for you, and thanks for the purchase.

  • Sorry to contact you again, but it's still not working for iOS. I started to think that perhaps I'd put things in iTunes Connect incorrectly, but I've gone over that with a fine toothed comb, and it's all set up as it should be (AFAIK).

    Reading over some forums, I'm seeing reports of people saying that they're getting no IAP using the default plugin, but are having success with a Cranberry plugin. Might I be able to ask how much your plugin differs from the official.

    Are you able to share a screenshot of how you've implemented IAP in one of your iOS games?

  • Sorry to contact you again, but it's still not working for iOS. I started to think that perhaps I'd put things in iTunes Connect incorrectly, but I've gone over that with a fine toothed comb, and it's all set up as it should be (AFAIK).

    Reading over some forums, I'm seeing reports of people saying that they're getting no IAP using the default plugin, but are having success with a Cranberry plugin. Might I be able to ask how much your plugin differs from the official.

    Are you able to share a screenshot of how you've implemented IAP in one of your iOS games?

    Ultimate IAP is a completely different plugin. I mean that it's not related to the official IAP not Cranberry's one.

    When it comes to C2 code then it's exactly the same as for Android. There are no differences. But if you ask for Appstore internal configuration then I'm afraid I can't help because I simply do not own a Mac nor iPhone. All my customers managed to set it up there by themselves after I provided the plugin and C2 code. But I can contact someone who built it for iOS and ask for Appstore config details. In a meantime I googled some info quickly, but I guess you already went through sites like this one https://developer.apple.com/in-app-purchase/

  • Ultimate IAP is a completely different plugin. I mean that it's not related to the official IAP not Cranberry's one.

    When it comes to C2 code then it's exactly the same as for Android. There are no differences. But if you ask for Appstore internal configuration then I'm afraid I can't help because I simply do not own a Mac nor iPhone. All my customers managed to set it up there by themselves after I provided the plugin and C2 code. But I can contact someone who built it for iOS and ask for Appstore config details. In a meantime I googled some info quickly, but I guess you already went through sites like this one https://developer.apple.com/in-app-purchase/

    Oh, I see... is that to say you've never tested this out personally on an iOS device, but your customers have? I'm looking through the comments, but can only see people talking about Android.

  • Oh, I see... is that to say you've never tested this out personally on an iOS device, but your customers have? I'm looking through the comments, but can only see people talking about Android.

    I tested this with a friend of mine before the release and I personally made several iOS apps with this plugin for my customers so I know it works well. Otherwise, I would have had much more complains and so far you're the very first one, and that lets me think that plugin is not at fault but something with your configuration.

    I'm sorry I don't have a video tutorial or at least a step by step PDF tutorial but so far even non technical customers (like designers) managed to set all up by themselves so I figured that Appstore configuration process is very simple and so I haven't put any prio for this tutorial.

    I'm sorry you're still encountering issues. You may want to give other plugins a try and simply refund my plugin if it doesn't fit your needs. As far as I know Scirra refunds without any issues so it's just a matter of sending them an email.

  • Hello

    Thanks for your work! I bought your plugin. But I don't understand how "Has product" works. I use it after trigger "On restore succeeded" but it not restore my purchase. I tested "Has product" after others triggers like "On init succeeded" and "Purchase succeeded" but it not get "true". Before that, I used the cranberrygame plugin and it worked. Could you explain to me how to use it?

  • Hello

    Thanks for your work! I bought your plugin. But I don't understand how "Has product" works. I use it after trigger "On restore succeeded" but it not restore my purchase. I tested "Has product" after others triggers like "On init succeeded" and "Purchase succeeded" but it not get "true". Before that, I used the cranberrygame plugin and it worked. Could you explain to me how to use it?

    Hi radbrothers,

    The functional part of Has product lays in Ludei's Cordova plugin, not in my plugin so I can't really explain the technical aspect. But it should work as in cranberrygame's plugin. It worked like a month ago when I tested it. I will give it another test next week (I'm AFK for this weekend) and if it's bugged then I'll contact Ludei, otherwise I'll let you know the exact steps of how to use it.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)