Navigation
API > API/Plugins > API/Plugins/OnlineSubsystemSteam
The Steam purchase interface is designed to handle microtransactions in-game, not DLC entitlements (use the external UI to show the Steam store for those) Steam microtransactions are not defined by the server, but rather by the client. UE lets us define these microtransactions in two ways
1) Config Driven Config driven microtransactions can be datamined, and can possibily be tampered if your backend server does not have the proper protections in place to verify the transaction. Therefore it is only recommended for development/debug flows. To add a new static microtransaction to Steam, add the following in your game's Engine file [OnlineSubsystemSteam] +StaticMicrotransactions=(Id=32bitinteger, Amount=costofitem, Description=myMicroTransaction)
2) Server-driven
- Make an implementation of ISteamPurchasingServerLink and implement all functions
| Name | FOnlinePurchaseSteam |
| Type | class |
| Header File | /Engine/Plugins/Online/OnlineSubsystemSteam/Source/Public/OnlinePurchaseInterfaceSteam.h |
| Include Path | #include "OnlinePurchaseInterfaceSteam.h" |
Syntax
class FOnlinePurchaseSteam :
public IOnlinePurchase ,
public TSharedFromThis< FOnlinePurchaseSteam, ESPMode::ThreadSafe >
Inheritance Hierarchy
- FSharedFromThisBase → TSharedFromThis → FOnlinePurchaseSteam
Implements Interfaces
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FOnlinePurchaseSteam
(
FOnlineSubsystemSteam* InSteamSubsystem |
OnlinePurchaseInterfaceSteam.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FOnlinePurchaseSteam() |
OnlinePurchaseInterfaceSteam.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| CachedCategories | TArray< FString > | OnlinePurchaseInterfaceSteam.h | ||
| CachedDLC | TArray< FPurchaseReceipt > | OnlinePurchaseInterfaceSteam.h | ||
| CachedMtxns | TArray< FOnlineStoreOfferRef > | OnlinePurchaseInterfaceSteam.h | ||
| ServerLink | TSharedPtr< ISteamPurchasingServerLink > | OnlinePurchaseInterfaceSteam.h | ||
| SteamSubsystem | FOnlineSubsystemSteam * | OnlinePurchaseInterfaceSteam.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void GetStoreCategories
(
TArray< FOnlineStoreCategory >& OutCategories |
OnlinePurchaseInterfaceSteam.h | ||
TSharedPtr< FOnlineStoreOffer > GetStoreOffer
(
const FUniqueOfferId& OfferId |
OnlinePurchaseInterfaceSteam.h | ||
void GetStoreOffers
(
TArray< FOnlineStoreOfferRef >& OutOffers |
OnlinePurchaseInterfaceSteam.h | ||
void RegisterServerLink
(
TSharedRef< ISteamPurchasingServerLink > InServerLink |
OnlinePurchaseInterfaceSteam.h |
Overridden from IOnlinePurchase
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void Checkout
(
const FUniqueNetId& UserId, |
OnlinePurchaseInterfaceSteam.h | ||
virtual void Checkout
(
const FUniqueNetId& UserId, |
OnlinePurchaseInterfaceSteam.h | ||
virtual void FinalizePurchase
(
const FUniqueNetId& UserId, |
OnlinePurchaseInterfaceSteam.h | ||
virtual void FinalizeReceiptValidationInfo
(
const FUniqueNetId& UserId, |
OnlinePurchaseInterfaceSteam.h | ||
virtual void GetReceipts
(
const FUniqueNetId& UserId, |
OnlinePurchaseInterfaceSteam.h | ||
virtual bool IsAllowedToPurchase
(
const FUniqueNetId& UserId |
OnlinePurchaseInterfaceSteam.h | ||
virtual void QueryReceipts
(
const FUniqueNetId& UserId, |
OnlinePurchaseInterfaceSteam.h | ||
virtual void RedeemCode
(
const FUniqueNetId& UserId, |
OnlinePurchaseInterfaceSteam.h |