[Solved] Is anyone sucessfully using BP Make In-App Purchase node on iOS 12.x

Hi,

Are you currently able to build an iOS app with working in-app purchases on iOS 12.x?

I’m struggling. Please help.
The Make In-App Purchase node is failing for me, and I simply can’t work out why. I have carefully followed many suggestions and documentation on this process but I’m still snagged here.

Here’s my rundown.

UE4.22 > Remote build on OS X >** Xcode 10.3** > test devices** iOS 12.2 / 12.4**

Provisioning: okay. Both dev / distro provisions and certs are working as expected.
Test Flight: okay - sucesfully uploading app to test flight. Installs to test devices as expected.
In-App Purchases: configured in Appstore Connect. Status is Ready to submit. Agreements and banking are all in order
iOSEngine.ini: [OnlineSubsystem] DefaultPlatformService=IOS [OnlineSubsystemIOS.Store] bSupportsInAppPurchasing=true bUseStoreV2=false

Read In App Purchase Information Node: Working as expected. App store query returns an array of In App Purchase Info structures containing each of the IAPs I have configured via App Store Connect.

** At this stage, based on all the above, I believe my app / project / appstore connect configuration is all okay. If it were not, I assume the read in app purchase information would be failing. **

Make an In App Purchase node: returns Completion Status: Unknown. Neither Success nor Failure exec outputs fire. When repeatedly fired (spam the buy button) sometimes it will return a failed completion status. Appstore credentials don’t appear to be passed to the store: See other post In-App Purchase - not passing account credentials 4.22 / iOS 12.x for console dump.

@Antidamage, do you have any advice to offer? Sorry to go tagging you. I’m having trouble finding UE4 devs who work with iOS apps.

Uncertain but I’m a month and a half from seriously needing to do it myself and it’ll be a roadblock. When I get it going I’ll post here.

did anyone find a fix?

Update on this. I’ve just successfully run a test account purchase through in a dev build of Unreal Match 3. This wasn’t working for me this morning, then spontaneously it started working a matter of 30 minutes later. I have no explanation… but this is good news. It would not prompt for account sign in at all then suddenly it would. It may be something to do with a freshly created In App Purchase item in Appstore Connect, but this is just a gut feel guess. I’ll see how consistent this success is and report back.

Ok, I’ve got this working in three projects now: a blank test project; a dev packaged build of Unreal Match 3 and my own project.

Some notes:

  • The live App Store version of Unreal Engine’s Unreal Match 3 fails to read store In App Purchase Info - there’s definitely a bug somewhere - my money is on changes at the App Store side. (This is still occurring for me on 9/9/19)

  • The learning project download of Unreal Match 3 can be successfully built and tested with IAPs (as long as you go through the prerequisite steps in App Store Connect correctly)

    • This is a C++ and Blueprint project

    • I recreated the In App Purchase in my App Store Connect account under a dummy test app and used my own developer provisioning. This was all set in Project settings

  • A blank project can be quickly configured to Read and Make In App Purchases (again, as long as you have the Apple side sorted).

    • In my case: 100% blueprint. (with Config/iOS folder copied from Unreal Match 3 project - you should be able to just create these .ini files from scratch I guess)

  • The documentation seems to work fin if you work through it carefully. But you DO need to add “bUseStoreV2=false” to iOSEngine.ini right under “bSupportsInAppPurchasing=True”. Easy and quick to grab the Config/iOS folder from Unreal Match 3 if you aren’t sure. iOSGame.ini can probably be deleted though.

As to why this has been a hassle? Stuffed if I know. I’m over trying to figure out the root cause.

My advice? Start a blank project, get that working as a test case, then figure out your real project. Download and test the Unreal Match 3 project as well, you should be able to get that rolling with the appropriate Apple App Store Connect set up completed.

I got asked by a thread subscriber to post my working blueprints.

Here’s what I used for my blank test project in UE4.22 - all stolen and modified from the Unreal Match 3 project, but essentially identical to my own blueprints based on the documentation. This is all in a single UMG Widget graph loaded on level begin play. I bound a couple of text areas to the price and confirmation text vars to watch them.

I zipped up the Blank Test project I used in case it helps someone get a quick test rolling.

Good luck.

Thank You So Much @LoneScrapbot this thread helped me! The changing of “bUseStoreV2=false” was what fixed it for me!

Hi, i was follow the config and adding the part of SubSystem inside of IOSEngine.ini and AndroidEngine.ini but allways have this error:

LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy::TriggerQuery - In App Purchases are not supported by Online Subsystem
LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy::TriggerQuery - In App Purchases are not supported by Online Subsystem

I dont know why not detect that.
If change to V2, always when read the Product ID the data is not correct, for example say:

[2021.07.05-01.06.21:356][552]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - GetUniqueNetIdFromCachedControllerId
[2021.07.05-01.06.21:356][552]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - Querying Store Interface
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::OnInAppPurchaseRead - Start
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::OnInAppPurchaseRead - WasSuccessful
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::OnInAppPurchaseRead - Interface is good
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::OnInAppPurchaseRead - Getting Cached Offers
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::OnInAppPurchaseRead - Converting to proxy store offer
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - CreateProxyInformation
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - CreateProxyInformation In Loop
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - Adding Product
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - Done Adding Product
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - CreateProxyInformation In Loop
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - Adding Product
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - Done Adding Product
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - CreateProxyInformation In Loop
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - Adding Product
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - Done Adding Product
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - CreateProxyInformation In Loop
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - Adding Product
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - Done Adding Product
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - CreateProxyInformation In Loop
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - Adding Product
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::TriggerQuery - Done Adding Product
[2021.07.05-01.06.21:364][553]LogScript: Warning: Script Msg: UInAppPurchaseQueryCallbackProxy2::OnInAppPurchaseRead - Done
[2021.07.05-01.06.21:365][553]LogBlueprintUserMessages: [Shop_C_0] Cool Item1

Why when use v2 give me this info: [Shop_C_0] Cool Item1

Thx.
BR