Fengist's Forum Posts

  • Ok, I got sick of waiting for a response and ditched my principles. I followed Reinarte lead and bought Cranberry's plugins. His IAP worked perfect the first time and it was no more difficult to set up in XDK than the official one was.

  • I think you're all missing a very BIG point. He shouldn't even have to consider pirating Cranberry's work. The official IAP should work. Period.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Ah, the cranberry plugin.

    I have a problem with paying one guy for a piece of software that claims to work and then having to pay another guy to get it to work. While his price is very, very reasonable... on principle the one I've already paid for should work. However, all I've gotten in the past four months is the directions to a tutorial.

  • .................. IAP ORDER ..................

    Start Layout -> Add products.....

    Request store listing

    On Store Listing Sucess -> Restore Purchases

    On Restore Purchases Sucess ->

    Has Product ".........."

    Boy, that would be nice. Unfortunately On Restore Purchases Success doesn't exist.

  • Bug 1 & Bug 2: Store available and store listing have to come back true in order to get these. When first starting up the project they don't always get returned immediately. I put in a loop where it would attempt to get the listing. If it failed, it would wait 2 seconds and try again. If it failed 5 times, it would assume that the store simply wasn't there and proceed. Yes it's an issue but I could find no other way to get it to work consistently.

    Bug 3: don't have this problem

    Bug 4: Correct AFAIK. I've tried with test mode on and off and makes no difference. If you want to do test purchases, you'll have to set up beta testers and add the email they use to log into google. Then, it will do the purchases but not deduct money from any account.

    Bug 5. I believe this has to do with Android caching the purchase info. If you cancel the purchase in the Google Dev Console it may take a while for it to get to the Android device. One test I haven't done is to cancel the purchase then turn the phone off and back on to clear that cache. Otherwise, it will eventually come back as false.

    Bug 6. I haven't tried an 'inverse' as I can't even consistently get the has product result on starting my app.

    Here's the thread I've been trying to get help on:

  • Ashley

    Ok, I do have it working now but only partially.

    If I make the purchase, shut the app down and restart the app, Has product comes back true.

    If I turn the phone off, turn it back on and run the app, Has product comes back false even if it's been purchased. If I then shut the app down and run it again, Has product comes back true.

    It appears to me there is a delay in initially getting Has product to the app so that on the first run, it doesn't get the response before the app has finished starting up. When the response does arrive, my Android device seems to be caching that information so that when I run it again, it finds it in the cache and gets the proper response.

    Because Has product is a true/false and not an event that I can associate a trigger to, I've tried adding in delays to make certain that the store is available and that the store listing success comes back true. I assumed that if store listing success came back true then Has product would be in there. Not so.

    When/How is the response for Has product being retrieved? Is there any way to make certain the app has gotten an actual response for Has product?

    I could use a stored variable to record when the purchase was made but, this becomes a problem when a purchaser requests a refund or to cancel the purchase.

    As it is now, I can never really be certain from the app's point of view if they have or have not made the in-app purchase.

  • I think what he means Ashley is if you put the C2 main form on a monitor that isn't the #1 monitor, all of the dialog boxes will still pop up on the #1 monitor. Even if you drag the dialog boxes over to say monitor #2, when they pop up again, they're back on monitor #1.

    Not sure I'd call it a bug, but it's a minor nuisance when you're working with dual monitors and have C2 on anything but the #1 monitor.

    I'm not sure what language you write C2 in but in Delphi for example, you can set dialog boxes to automatically pop up at the main form center. I then have a component that stores the screen location of those dialog boxes in the registry so the next time the user pops them up, they're at the spot where the user placed them.

    I'm sure you're aware that even then other problems arise, like when the user puts everything on monitor #2 and then disconnects monitor #2 and restarts the main program. The dialog boxes can end up completely off screen.

  • Ashley

    I got it working. I now have a 'Has Full Version' returning true after a purchase has been made with the test capx. But...

    If you follow the tutorial it will still refuse to build in XDK. Here's what I had to do.

    • I went through every XML for the C2 export and every XML that XDK created in the project directory and removed every reference to com.mcm.plugins.androidinappbilling.
    • I manually added the cc.fovea.plugins.inapppurchase plugin to the XDK project.
    • I wasn't sure if the plugin you recommended in the tutorial was causing the issue or not so I found the cc.fovea.cordova.purchase which seems to work the same as it required the Google API key and maunally added it to the XDK project. (found here: https://github.com/j3k0/cordova-plugin-purchase)

    The project built with no issues and now I'm able to get

    Store Available

    Listing Success

    Product Name

    Purchase Price

    Has Product

    So far cancelling the product purchase in Google Merchant Services hasn't reverted the Has Product back to false but that may just be a delay in Google's system and probably not a C2 issue.

    This bug may be an issue with XDK automatically adding the com.mcm.plugins.androidinappbilling. I don't know enough about it to say. I'm just hacking my way through and making semi-educated guesses. You may want to confirm all of this and decide whether it's still an XDK issue or a C2 issue and possibly update the tutorial and/or send a note off to Intel letting them know.

    One thing I noticed is that XDK does give a warning when you import the C2 project that adding plugins via the .XML has known issues.

    Anyway, thanks for pointing me in the right direction for a solution. I can now begin work again!!!

    And as for the Chrome and Amazon web... I did read that they were experimental and you didn't get a lot of feedback. I can live without them. Google Play is the big one on the block and once I get rolling again I can test the Amazon store to see if it works with a normal app and not just a web app. The basic plan was to have freemium versions on them. But if IAP doesn't work I can still use them for promotional put free versions on them to point the way to the Android app. If you do want them tested, add a note in the patch notes that get e-mailed out when you release updates (that way I'll see it) and I'll be happy to report any progress on them.

    Thanks again. I'm a happy coder now.

  • Right, here's the problem. If I follow your tutorial and install: https://github.com/poiuytrez/AndroidInAppBilling

    I get this when trying to build with XDK...

    Plugin "com.smartmobilesoftware.androidinappbilling" (3.0.2) installed.

    Plugin "cordova-plugin-legacy-whitelist" (1.1.0) installed.

    Plugin "cc.fovea.plugins.inapppurchase" (3.4.1) installed.

    Error: Plugin com.mcm.plugins.androidinappbilling failed to install.

    Which, for over a year now, you've been saying is an XDK issue.

    So, correct me if I'm mistaken in this logic but C2 is telling XDK to add that plugin via the XML and you're saying add the other plugin manually and any time you add the two to an XDK project it won't build them. It seems to me that it's the choice of plugins that C2 is telling XDK to use that's causing the issue.

    I've been ripping export .xml files apart and even adding both manually, XDK will build with either but not both.

  • Actually , no it shouldn't be that way. This is an official plug. It should work as stated, or at least have an official statement why it's currently not working.

    The problem is that he has nothing to tell that he is doing something wrong, or if it's broken.

    The plug has very little documentation, and no official examples.

    This isn't one of those novice expectations like one click deploy, or unlimited ram.

    Thanks Newt. I half expected responses telling me to find another way to do this. Had C2 not been as easy to develop in as it is, I'd have been screaming for a refund weeks ago. I still have hope.

    Ashley did state in one of my older post about this that the Chrome Web Store probably didn't work and that he was going to look into it for the next patch. I posted it along with the other issues as a 'reminder' after the next patch came and went.

    That's as close to anything official that I've gotten.

  • Over 3 months now since my first post on this and I'm no closer to a solution now than I was then. I fully realize that Ashley is the proverbial one-legged man in an ass-kicking contest but, since I'm unable to sell what I've created, I'm still waiting for an answer when I could have been clicking on the upgrade button.

  • So umm... I'm now over 2 months and still have no answer as to whether this is a bug or I'm doing it wrong.

  • Why don't you just use InstallSimple? InstallSimple.com. It's a free installer that packages everything into one .exe file. You give it to your friends, it installs your game, and it has an uninstaller so when they want to chuck it, they don't have to root through their hard drive to do it.

  • Turn your text into a bullet.

  • Saw in the patch notes the update to IAP so I upgraded to r220 beta and tried again.

    • Running on local host - Store found (boggle if I read the iap js correct it's assuming Chrome Web) - Store Listing Failed. In r219 I got Store not found.
    • Exported to Amazon and ran it on their web app tester - Store not found.
    • Exported to Chrome Web and uploaded to the store - Store not found.
    • Google Play - Unchanged. Finds the store, gets the product, does a proper purchase and then comes back with a false 'has product'.