[Android][4.16.3][BP] Read In app purchase information incorrect/incomplete behaviour when success.

Just FYI,

Figured out what the problem was with UE4 and the issues getting the in app purchased items.

You just have to look at GooglePlayStoreHelper.java in the engine (16.3), it has the following 4 (four) callbacks:

nativeQueryComplete → when asking for the different products available has been completed
nativePurchaseComplete → when we purchased something
nativeRestorePurchasesComplete → when we restored a purchase
nativeQueryExistingPurchasesComplete → when we ask for the already purchased items!!!

Now if you look to BP available functions there are 3 (three, so one less than above) groups:
MakeInAppPurchase
ReadInAppPurchase
RestoreInAppPurchase.

So, the issue is that ReadInAppPurchase doesn’t read other than the AVAILABLE items to purchase, it doens’t tell us the already owned items and it never will, it’s called from “nativeQueryComplete” but not from “nativeQueryExistingPurchasesComplete”.

As a conclusion, the bug here is that a BP method for the “nativeQueryExistingPurchasesComplete” callback is missing completely, although the android java part is ready and I guess working fine. So, can anyone tell me how could I create or make it appear the required BP method?

Note: as a workarround, you can manually edit the QueryInAppPurchases method in the java file to call manually the GatherOwnedPurchaseData method and append the needed info into the description field or somewhere else, so it can be later parsed and identified (I append an “[OWNED]” string to identifiers and parse the identifiers in the BP in search of that string). Kind of hacky way to solve it but no other solution found atm, and I tryed several things, including a plugin, no time to go deep into the issue but it should be addressed as a mayor bug for android target (as it affects monetization).