Download

Problem with Read IAP node

After fighting with my IAPs for a week, I started breaking it down. My code brings up the login, but when it attempts to read my In app purchase products from google play, it fails. All product IDs are the same as those found in my developer console, so I’m not sure how to fix this. I used almost the exact same code to get the prices of my IAps. Any help?

And this is the result:

Code3.jpg

Just weighing in here, I have same issue. Can’t get any of the IAP nodes to work.

TrayJ,

Can you supply any log output from logcat that you get on device when you try to read the IAP information?
You say your code brings up the login UI, but do you actually get logged in successfully?
Is your app signed with the distribution/Google Play keystore associated with your app on the developer console? If not, GooglePlay functionality will typically fail.

I call the log in portion when the store opens, and it checks again while attempting to make a purchase. If it doesn’t log in the first time, wouldn’t the external UI for login pop up when it is called the second time?

I attempted to run the logcat while my device was connected, but the display on my monitor states it is “waiting for device.” Not sure what I am doing wrong there, but when I get it to work, I will be more than happy to pass the logs along.

As far as the signing, I created the keystore, and installed it in the build folder (otherwise it would fail to package). My App ID and Base 64 RSA license key are also included. As are all permissions that I have found that state they need to be included. I cannot access pricing information or anything else involved with my IAPs

Make sure you have the appropriate device drivers installed on your machine. Sometimes that can be a pain. Google is your friend there.

And you are packaging the build for distribution? If so, the logs would likely not be super useful anyways because Distribution builds packaged through the editor default to Shipping, which disables a lot of logging.

I am not certain about this, however, I have another question for you. Is your app live in play store now?

If not, is the Google account you are using to test with set up as an Alpha/Beta test user for your application in the developer console? As far as I know, if your user is not set as a test user, you will not be able to log in or query IAP successfully.

Yes, it is a distribution build for shipping. The app has been published for a week under closed beta, and the user account is the one used on my device.

And the account is one of the approved beta test accounts?

Is does the StoreVersion for the builds you are making locally to test IAP match the current beta test StoreVersion?

If you have any luck connecting your device with logcat, I can help you make a build signed with you distribution keystore that is still a development build so you can get logging.

Yes, the version numbers match. I have tried both pushing the same file manually to my phone, and I tried downloading directly from google play. Both versions have the same result. And yes, it is one of the approved beta accounts as well.

I found this step-by-step tutorial, and went through it. Integrate Google Play Services with Blueprint - Community Content, Tools and Tutorials - Unreal Engine Forums This tutorial claims to work, but it did not work for me. Problem is, I don’t know if it is something in Unreal causing the issue or if it is something in Google play itself. I feel like I have gone through both with a fine-toothed comb, yet something is still not connecting.

Hey,

Have you checked that it is actually returning the on failed event when called? I had a similar problem where on an android device the node wasn’t suceeding or failing and was fixed by learning about what gameXcore said in this link

https://answers.unrealengine.com/questions/309088/491-read-in-app-purchase-information-node-dont-wor.html

It is successfully failing. I set up an output to both, and the fail output shows each time

For future readers, I’ve been going back and for with TrayJ privately and this ended up being because of incorrect formatting in the Engine.ini which led to the OnlineSubsystem not being set to support In App Purchasing.
Be sure that you don’t have any leading whitespace prior to config variables. :slight_smile:

I suggested that to TrayJ previously, on Answerhub.

Is this what you used in the DefaultEngine.ini?

There’s other useful information in the Answerhub post for anyone else that may run into problems: https://answers.unrealengine.com/questions/457148/cant-get-read-iap-node-to-work.html

Also TrayJ, if you could please mark the correct answer on Answerhub because this setting gets overlooked quite a lot.

Yes, there were spaces before DefaultPlatformService and bSupportsInAppPurchasing which were causing problems.

Yes, I will. Thank you both for y our help.

HUZZAH! Thank you all, finally got mine working and it was just because I didn’t have this in my DefaultEngine.ini:


[OnlineSubsystem]
DefaultPlatformService=GooglePlay

[OnlineSubsystemGooglePlay.Store]
bSupportsInAppPurchasing=True