The comments inside `OnlinePurchaseInterfaceSteam.h` say to implement `ISteamPurchasingServerLink`. However, when doing so in my own module, when I include the `#include OnlinePurchaseInterfaceSteam.h`, that includes the private header file `OnlineSubsystemSteamPrivate.h` at the top of `OnlinePurchaseInterfaceSteam.h`.
Due to the above, it’s not clear how exactly we’re supposed to implement `ISteamPurchasingServerLink` and call register if including the header required to implement the interface causes compile issues.
Thank you for bringing this to our attention! This seems to be an oversight with including OnlineSubsystemSteamPrivate.h in OnlinePurchaseInterfaceSteam.h, and I’ve opened a new issue for this, UE-273830, which should be visible in the public tracker in a day or so.
Unfortunately, I’m not sure there’s any workaround at the moment, outside of making modifications to the engine.
For projects that intended to implement purchasing purely in the OSS, the intent for ISteamPurchasingServerLink was to allow this kind of project to support Steam with minimal modifications. If Steam is the only platform you intend to support (or you already have your own purchasing flow), another option could be to handle purchasing in your own project code instead of using this interface.