LootLocker Unreal SDK 10.4.0
Game backend SDK for Unreal Engine
Loading...
Searching...
No Matches
LootLockerPurchasesRequestHandler.h
Go to the documentation of this file.
1// Copyright (c) 2021 LootLocker
2
3#pragma once
4
5
6#include "CoreMinimal.h"
9#include "TimerManager.h"
10#include "Kismet/BlueprintAsyncActionBase.h"
11#include "LootLockerSDK/Private/Utils/LootLockerUtilities.h"
12#include "LootLockerPurchasesRequestHandler.generated.h"
13
14USTRUCT(BlueprintType)
16{
17 GENERATED_BODY()
18 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
19 int time_left = 0;
20};
21
25USTRUCT(BlueprintType, Category = "LootLocker")
27{
28 GENERATED_BODY()
32 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
33 FString Catalog_listing_id = "";
37 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
38 int Quantity = 0;
39};
40
44USTRUCT(BlueprintType, Category = "LootLocker")
46{
47 GENERATED_BODY()
51 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
52 FString Wallet_id = "";
56 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
58};
59
63USTRUCT(BlueprintType, Category = "LootLocker")
65{
66 GENERATED_BODY()
70 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
71 bool Sandboxed = false;
75 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
76 FString Transaction_id = "";
77};
78
82USTRUCT(BlueprintType, Category = "LootLocker")
84{
85 GENERATED_BODY()
89 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
90 int Class_id = 0;
91};
92
96USTRUCT(BlueprintType, Category = "LootLocker")
98{
99 GENERATED_BODY()
103 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
104 FString Product_id = "";
108 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
109 FString Purchase_token = "";
110};
111
115USTRUCT(BlueprintType, Category = "LootLocker")
117{
118 GENERATED_BODY()
122 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
123 int Class_id = 0;
124};
125
129USTRUCT(BlueprintType, Category = "LootLocker")
131{
132 GENERATED_BODY()
136 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
137 FString Account_id = "";
141 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
142 FString Bearer_token = "";
146 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
147 TArray<FString> Entitlement_ids;
151 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
152 FString Sandbox_id = "";
153};
154
158USTRUCT(BlueprintType, Category = "LootLocker")
160{
161 GENERATED_BODY()
165 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
166 FString Character_id = "";
167};
168
171UENUM(BlueprintType, Category = "LootLocker")
176{
177 Init = 0,
178 Approved = 1,
179 Succeeded = 2,
180 Failed = 3,
181 Refunded = 4,
182 PartialRefund = 5,
183 ChargedBack = 6,
186};
188
192USTRUCT(BlueprintType, Category = "LootLocker")
194{
195 GENERATED_BODY()
199 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
200 FString Steam_id = "";
204 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
205 FString Currency = "";
209 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
210 FString Language = "";
214 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
215 FString Catalog_item_id = "";
216};
217
221USTRUCT(BlueprintType, Category = "LootLocker")
223{
224 GENERATED_BODY()
228 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
229 int Class_id = 0;
230};
231
235USTRUCT(BlueprintType, Category = "LootLocker")
237{
238 GENERATED_BODY()
242 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
243 bool isSuccess = false;
247 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
248 FString Entitlement_id = "";
249};
250
254USTRUCT(BlueprintType, Category = "LootLocker")
256{
257 GENERATED_BODY()
261 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
262 FString Entitlement_id = "";
263};
264
268USTRUCT(BlueprintType, Category = "LootLocker")
270{
271 GENERATED_BODY()
275 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
277};
278
282USTRUCT(BlueprintType, Category = "LootLocker")
284{
285 GENERATED_BODY()
289 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
290 FString Entitlement_id = "";
291};
292
295UENUM(BlueprintType, Category = "LootLocker")
300{
301 removed = 0,
302 skipped = 1,
303};
305
308UENUM(BlueprintType, Category = "LootLocker")
318
321UENUM(BlueprintType, Category = "LootLocker")
333
334USTRUCT(BlueprintType)
336{
337 GENERATED_BODY()
339 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
340 TArray<FString> entitlement_ids;
341};
342
343USTRUCT(BlueprintType)
345{
346 GENERATED_BODY()
348 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
349 int64 asset_id = 0;
351 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
352 FString name;
354 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
356};
357
358USTRUCT(BlueprintType)
360{
361 GENERATED_BODY()
363 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
364 FString currency_id;
366 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
367 FString currency_code;
369 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
370 FString amount;
371};
372
373USTRUCT(BlueprintType)
375{
376 GENERATED_BODY()
378 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
381 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
382 FString id;
384 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
385 FString name;
387 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
388 FString amount;
389};
390
391USTRUCT(BlueprintType)
393{
394 GENERATED_BODY()
402 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
405 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
406 FString message;
408 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
410};
411
412USTRUCT(BlueprintType)
414{
415 GENERATED_BODY()
417 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
418 FString entitlement_id;
420 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
422};
423
424USTRUCT(BlueprintType)
426{
427 GENERATED_BODY()
429 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
430 TArray<FLootLockerRefundPlayerInventoryEvent> player_inventory_events;
432 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
433 TArray<FLootLockerRefundCurrencyEntry> currency_refunded;
435 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
436 TArray<FLootLockerRefundCurrencyEntry> currency_clawback;
441 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
442 TArray<FLootLockerRefundWarning> warnings;
443};
444
445//==================================================
446// Async Purchase Types
447//==================================================
448
451UENUM(BlueprintType, Category = "LootLocker")
456{
457 Pending = 0,
458 Active = 1,
459 Failed = 2,
460 TimedOut = 3,
461 Cancelled = 4,
462};
464
468USTRUCT(BlueprintType, Category = "LootLocker")
470{
471 GENERATED_BODY()
475 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
476 FString Entitlement_id = "";
477};
478
482USTRUCT(BlueprintType, Category = "LootLocker")
484{
485 GENERATED_BODY()
489 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
490 FString Entitlement_id = "";
494 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
499 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
500 FString Error = "";
501};
502
505
509
511{
512 static constexpr int RetryLimit = 5;
513 FString EntitlementId = "";
514 FString WalletId = "";
515 TArray<FLootLockerCatalogItemAndQuantityPair> Items;
517 FDateTime TimeoutTime;
518 float PollingIntervalSeconds = 1.0f;
519 int Retries = 0;
520 bool ShouldCancel = false;
522
524 FLootLockerAsyncPurchaseProcess(float _PollingIntervalSeconds, float TimeoutAfterMinutes);
525};
526
535
539USTRUCT(BlueprintType, Category = "LootLocker")
541{
542 GENERATED_BODY()
546 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
547 FString Catalog_item_id = "";
548};
549
553USTRUCT(BlueprintType, Category = "LootLocker")
555{
556 GENERATED_BODY()
560 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
561 FString checkout_link = "";
565 UPROPERTY(BlueprintReadWrite, EditAnywhere, Category = "LootLocker")
566 FString entitlement_id = "";
567};
568
571
573UCLASS()
574class LOOTLOCKERSDK_API ULootLockerPurchasesRequestHandler : public UObject
575{
576 GENERATED_BODY()
577public:
579
580
581 static FString ActivateRentalAsset(const FLootLockerPlayerData& PlayerData, int AssetInstanceId, const FActivateRentalAssetResponseDelegate& OnCompletedRequest);
582
583 static FString PurchaseCatalogItems(const FLootLockerPlayerData& PlayerData, const FString& WalletID, const TArray<FLootLockerCatalogItemAndQuantityPair>& ItemsToPurchase, const FLootLockerDefaultDelegate& OnCompleted);
584
585 static FString RedeemAppleAppStorePurchaseForPlayer(const FLootLockerPlayerData& PlayerData, const FString& TransactionId, const bool Sandboxed = false, const FLootLockerDefaultDelegate& OnCompleted = FLootLockerDefaultDelegate());
586
587 static FString RedeemAppleAppStorePurchaseForClass(const FLootLockerPlayerData& PlayerData, const int ClassId, const FString& TransactionId, const bool Sandboxed = false, const FLootLockerDefaultDelegate& OnCompleted = FLootLockerDefaultDelegate());
588
589 static FString RedeemGooglePlayStorePurchaseForPlayer(const FLootLockerPlayerData& PlayerData, const FString& ProductId, const FString& PurchaseToken, const FLootLockerDefaultDelegate& OnCompleted);
590
591 static FString RedeemGooglePlayStorePurchaseForClass(const FLootLockerPlayerData& PlayerData, const int ClassId, const FString& ProductId, const FString& PurchaseToken, const FLootLockerDefaultDelegate& OnCompleted);
592
593 static FString RedeemEpicStorePurchase(const FLootLockerPlayerData& PlayerData, const FString& AccountId, const FString& BearerToken, const TArray<FString>& EntitlementIds, const FString& SandboxId, const FLootLockerDefaultDelegate& OnCompleted);
594
595 static FString RedeemEpicStorePurchaseForCharacter(const FLootLockerPlayerData& PlayerData, const FString& CharacterId, const FString& AccountId, const FString& BearerToken, const TArray<FString>& EntitlementIds, const FString& SandboxId, const FLootLockerDefaultDelegate& OnCompleted);
596
597 static FString RedeemPlayStationStorePurchaseForPlayer(const FLootLockerPlayerData& PlayerData, const FString& TransactionId, const FString& AuthCode, const FString& EntitlementLabel, const FString& ServiceLabel = "", const FString& ServiceName = "", const int Environment = -1, const int UseCount = -1, const FLootLockerDefaultDelegate& OnCompleted = FLootLockerDefaultDelegate());
598
599 static FString RedeemPlayStationStorePurchaseForCharacter(const FLootLockerPlayerData& PlayerData, const FString& CharacterId, const FString& TransactionId, const FString& AuthCode, const FString& EntitlementLabel, const FString& ServiceLabel = "", const FString& ServiceName = "", const int Environment = -1, const int UseCount = -1, const FLootLockerDefaultDelegate& OnCompleted = FLootLockerDefaultDelegate());
600
601 static FString BeginSteamPurchaseRedemption(const FLootLockerPlayerData& PlayerData, const FString& SteamId, const FString& Currency, const FString& Language, const FString& CatalogItemId, const FLootLockerBeginSteamPurchaseRedemptionDelegate& OnCompleted);
602
603 static FString BeginSteamPurchaseRedemptionForClass(const FLootLockerPlayerData& PlayerData, const int ClassId, const FString& SteamId, const FString& Currency, const FString& Language, const FString& CatalogItemId, const FLootLockerBeginSteamPurchaseRedemptionDelegate& OnCompleted);
604
605 static FString QuerySteamPurchaseRedemptionStatus(const FLootLockerPlayerData& PlayerData, const FString& EntitlementId, const FLootLockerQuerySteamPurchaseRedemptionStatusDelegate& OnCompleted);
606
607 static FString FinalizeSteamPurchaseRedemption(const FLootLockerPlayerData& PlayerData, const FString& EntitlementId, const FLootLockerDefaultDelegate& OnCompleted);
608
609 static FString RefundByEntitlementIds(const FLootLockerPlayerData& PlayerData, const TArray<FString>& EntitlementIds, const FLootLockerRefundByEntitlementIdsDelegate& OnCompleted);
610
611 static FString CreateStripeCheckoutSession(const FLootLockerPlayerData& PlayerData, const FString& CatalogItemId, const FLootLockerCreateStripeCheckoutSessionDelegate& OnCompleted);
612
613 static FString InitiateAsyncPurchase(const FLootLockerPlayerData& PlayerData, const FString& WalletId, const TArray<FLootLockerCatalogItemAndQuantityPair>& Items, const FLootLockerAsyncPurchaseInitiatedDelegate& OnCompleted);
614
615 static FString GetAsyncPurchaseStatus(const FLootLockerPlayerData& PlayerData, const FString& EntitlementId, const FLootLockerAsyncPurchaseStatusDelegate& OnCompleted);
616
617 static FString RetryAsyncPurchase(const FLootLockerPlayerData& PlayerData, const FString& EntitlementId, const FString& WalletId, const TArray<FLootLockerCatalogItemAndQuantityPair>& Items, const FLootLockerAsyncPurchaseInitiatedDelegate& OnCompleted);
618
619 static FString StartAsyncPurchasePolling(const FLootLockerPlayerData& PlayerData, const FString& WalletId, const TArray<FLootLockerCatalogItemAndQuantityPair>& Items, const FLootLockerAsyncPurchaseStatusDelegate& OnStatusUpdate, const FLootLockerAsyncPurchaseStatusDelegate& OnComplete, float PollingIntervalSeconds = 1.0f, float TimeoutAfterMinutes = 5.0f);
620
621 static void CancelAsyncPurchasePolling(const FString& ProcessID);
622
623 static FString ContinualAsyncPurchasePollAction(const FString& ProcessID, const FLootLockerAsyncPurchaseStatusDelegate& OnStatusUpdate, const FLootLockerAsyncPurchaseStatusDelegate& OnComplete);
624
625 static void KillAsyncPurchaseProcess(const FString& ProcessID);
626
627protected:
628 static FString GetAsyncPurchaseStatus(const FLootLockerPlayerData& PlayerData, const FString& EntitlementId, const LLAPI<FLootLockerAsyncPurchaseStatusResponse>::FResponseInspectorCallback& OnCompleted);
629 static void SetAsyncPurchaseTimer(FTimerHandle& TimerHandle, const FTimerDelegate& Delegate, float Time);
630 static void ClearAsyncPurchaseTimer(FTimerHandle& TimerHandle);
631
632private:
633 static TMap<FString, FLootLockerAsyncPurchaseProcess> AsyncPurchaseProcesses;
634};
635
636//==================================================
637// Async Blueprint Delegate Definitions
638//==================================================
639
643DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FLootLockerAsyncPurchasePollingMulticastDelegate, FString, ProcessID, FLootLockerAsyncPurchaseStatusResponse, Response);
644
645//==================================================
646// Async Blueprint Node Definitions
647//==================================================
648
649UCLASS()
650class ULootLockerAsyncPollAsyncPurchase : public UBlueprintAsyncActionBase
651{
652 GENERATED_BODY()
653public:
665 UFUNCTION(BlueprintCallable, meta = (BlueprintInternalUseOnly = "true", Category = "LootLocker Methods | Purchases", WorldContext = "WorldContextObject", AdvancedDisplay = "PollingIntervalSeconds,TimeoutAfterMinutes,ForPlayerWithUlid", PollingIntervalSeconds = 1.0f, TimeoutAfterMinutes = 5.0f, ForPlayerWithUlid = ""))
666 static LOOTLOCKERSDK_API ULootLockerAsyncPollAsyncPurchase* AsyncPollAsyncPurchase(UObject* WorldContextObject, FString ForPlayerWithUlid, FString WalletId, TArray<FLootLockerCatalogItemAndQuantityPair> Items, float PollingIntervalSeconds, float TimeoutAfterMinutes);
667
669 UPROPERTY(BlueprintAssignable)
670 FLootLockerAsyncPurchasePollingMulticastDelegate OnPending;
672 UPROPERTY(BlueprintAssignable)
673 FLootLockerAsyncPurchasePollingMulticastDelegate OnActive;
675 UPROPERTY(BlueprintAssignable)
676 FLootLockerAsyncPurchasePollingMulticastDelegate OnFailed;
678 UPROPERTY(BlueprintAssignable)
679 FLootLockerAsyncPurchasePollingMulticastDelegate OnTimedOut;
681 UPROPERTY(BlueprintAssignable)
682 FLootLockerAsyncPurchasePollingMulticastDelegate OnCancelled;
683
684 LOOTLOCKERSDK_API virtual void Activate() override;
685
686protected:
687 FString ForPlayerWithUlid = "";
688 FString ProcessID = "";
689 FString WalletId = "";
691 float PollingIntervalInSeconds = 1.0f;
692 float TimeoutAfterMinutes = 5.0f;
693};
DECLARE_DYNAMIC_MULTICAST_DELEGATE_TwoParams(FLootLockerAsyncPurchasePollingMulticastDelegate, FString, ProcessID, FLootLockerAsyncPurchaseStatusResponse, Response)
Multicast delegate for events triggered from the async purchase polling node.
void(* FLootLockerDefaultDelegate)(FLootLockerResponse)
Definition LootLockerResponse.h:38
Definition LootLockerPurchasesRequestHandler.h:651
Definition LootLockerPurchasesRequestHandler.h:575
static void KillAsyncPurchaseProcess(const FString &ProcessID)
static FString RetryAsyncPurchase(const FLootLockerPlayerData &PlayerData, const FString &EntitlementId, const FString &WalletId, const TArray< FLootLockerCatalogItemAndQuantityPair > &Items, const FLootLockerAsyncPurchaseInitiatedDelegate &OnCompleted)
static FString RedeemPlayStationStorePurchaseForPlayer(const FLootLockerPlayerData &PlayerData, const FString &TransactionId, const FString &AuthCode, const FString &EntitlementLabel, const FString &ServiceLabel="", const FString &ServiceName="", const int Environment=-1, const int UseCount=-1, const FLootLockerDefaultDelegate &OnCompleted=FLootLockerDefaultDelegate())
static FString BeginSteamPurchaseRedemption(const FLootLockerPlayerData &PlayerData, const FString &SteamId, const FString &Currency, const FString &Language, const FString &CatalogItemId, const FLootLockerBeginSteamPurchaseRedemptionDelegate &OnCompleted)
static FString CreateStripeCheckoutSession(const FLootLockerPlayerData &PlayerData, const FString &CatalogItemId, const FLootLockerCreateStripeCheckoutSessionDelegate &OnCompleted)
static FString ActivateRentalAsset(const FLootLockerPlayerData &PlayerData, int AssetInstanceId, const FActivateRentalAssetResponseDelegate &OnCompletedRequest)
static FString RedeemPlayStationStorePurchaseForCharacter(const FLootLockerPlayerData &PlayerData, const FString &CharacterId, const FString &TransactionId, const FString &AuthCode, const FString &EntitlementLabel, const FString &ServiceLabel="", const FString &ServiceName="", const int Environment=-1, const int UseCount=-1, const FLootLockerDefaultDelegate &OnCompleted=FLootLockerDefaultDelegate())
static FString GetAsyncPurchaseStatus(const FLootLockerPlayerData &PlayerData, const FString &EntitlementId, const LLAPI< FLootLockerAsyncPurchaseStatusResponse >::FResponseInspectorCallback &OnCompleted)
static void SetAsyncPurchaseTimer(FTimerHandle &TimerHandle, const FTimerDelegate &Delegate, float Time)
static FString RedeemEpicStorePurchase(const FLootLockerPlayerData &PlayerData, const FString &AccountId, const FString &BearerToken, const TArray< FString > &EntitlementIds, const FString &SandboxId, const FLootLockerDefaultDelegate &OnCompleted)
static FString RedeemEpicStorePurchaseForCharacter(const FLootLockerPlayerData &PlayerData, const FString &CharacterId, const FString &AccountId, const FString &BearerToken, const TArray< FString > &EntitlementIds, const FString &SandboxId, const FLootLockerDefaultDelegate &OnCompleted)
static FString RedeemAppleAppStorePurchaseForClass(const FLootLockerPlayerData &PlayerData, const int ClassId, const FString &TransactionId, const bool Sandboxed=false, const FLootLockerDefaultDelegate &OnCompleted=FLootLockerDefaultDelegate())
static FString RedeemGooglePlayStorePurchaseForClass(const FLootLockerPlayerData &PlayerData, const int ClassId, const FString &ProductId, const FString &PurchaseToken, const FLootLockerDefaultDelegate &OnCompleted)
static FString RedeemGooglePlayStorePurchaseForPlayer(const FLootLockerPlayerData &PlayerData, const FString &ProductId, const FString &PurchaseToken, const FLootLockerDefaultDelegate &OnCompleted)
ULootLockerPurchasesRequestHandler()
Definition LootLockerPurchasesRequestHandler.h:578
static void CancelAsyncPurchasePolling(const FString &ProcessID)
static void ClearAsyncPurchaseTimer(FTimerHandle &TimerHandle)
static FString StartAsyncPurchasePolling(const FLootLockerPlayerData &PlayerData, const FString &WalletId, const TArray< FLootLockerCatalogItemAndQuantityPair > &Items, const FLootLockerAsyncPurchaseStatusDelegate &OnStatusUpdate, const FLootLockerAsyncPurchaseStatusDelegate &OnComplete, float PollingIntervalSeconds=1.0f, float TimeoutAfterMinutes=5.0f)
static FString InitiateAsyncPurchase(const FLootLockerPlayerData &PlayerData, const FString &WalletId, const TArray< FLootLockerCatalogItemAndQuantityPair > &Items, const FLootLockerAsyncPurchaseInitiatedDelegate &OnCompleted)
static FString RefundByEntitlementIds(const FLootLockerPlayerData &PlayerData, const TArray< FString > &EntitlementIds, const FLootLockerRefundByEntitlementIdsDelegate &OnCompleted)
static FString BeginSteamPurchaseRedemptionForClass(const FLootLockerPlayerData &PlayerData, const int ClassId, const FString &SteamId, const FString &Currency, const FString &Language, const FString &CatalogItemId, const FLootLockerBeginSteamPurchaseRedemptionDelegate &OnCompleted)
static FString QuerySteamPurchaseRedemptionStatus(const FLootLockerPlayerData &PlayerData, const FString &EntitlementId, const FLootLockerQuerySteamPurchaseRedemptionStatusDelegate &OnCompleted)
static FString GetAsyncPurchaseStatus(const FLootLockerPlayerData &PlayerData, const FString &EntitlementId, const FLootLockerAsyncPurchaseStatusDelegate &OnCompleted)
static FString ContinualAsyncPurchasePollAction(const FString &ProcessID, const FLootLockerAsyncPurchaseStatusDelegate &OnStatusUpdate, const FLootLockerAsyncPurchaseStatusDelegate &OnComplete)
static FString FinalizeSteamPurchaseRedemption(const FLootLockerPlayerData &PlayerData, const FString &EntitlementId, const FLootLockerDefaultDelegate &OnCompleted)
static FString RedeemAppleAppStorePurchaseForPlayer(const FLootLockerPlayerData &PlayerData, const FString &TransactionId, const bool Sandboxed=false, const FLootLockerDefaultDelegate &OnCompleted=FLootLockerDefaultDelegate())
static FString PurchaseCatalogItems(const FLootLockerPlayerData &PlayerData, const FString &WalletID, const TArray< FLootLockerCatalogItemAndQuantityPair > &ItemsToPurchase, const FLootLockerDefaultDelegate &OnCompleted)
ELootLockerRefundInventoryEventAction
Possible actions for a player inventory event during a refund.
Definition LootLockerPurchasesRequestHandler.h:300
void(* FLootLockerRefundByEntitlementIdsDelegate)(FLootLockerRefundByEntitlementIdsResponse)
C++ response callback delegate; receives an FLootLockerRefundByEntitlementIdsResponse result.
Definition LootLockerPurchasesRequestHandler.h:534
ELootLockerRefundNonReversibleRewardKind
Possible kinds of non-reversible rewards in a refund warning.
Definition LootLockerPurchasesRequestHandler.h:313
void(* FLootLockerCreateStripeCheckoutSessionDelegate)(FLootLockerCreateStripeCheckoutSessionResponse)
C++ response callback delegate; receives an FLootLockerCreateStripeCheckoutSessionResponse result.
Definition LootLockerPurchasesRequestHandler.h:570
void(* FLootLockerQuerySteamPurchaseRedemptionStatusDelegate)(FLootLockerQuerySteamPurchaseRedemptionStatusResponse)
C++ response callback delegate; receives an FLootLockerQuerySteamPurchaseRedemptionStatusResponse res...
Definition LootLockerPurchasesRequestHandler.h:532
ELootLockerSteamPurchaseRedemptionStatus
Possible statuses a Steam Purchase can have.
Definition LootLockerPurchasesRequestHandler.h:176
void(* FLootLockerAsyncPurchaseStatusDelegate)(FLootLockerAsyncPurchaseStatusResponse)
C++ response callback delegate; receives an FLootLockerAsyncPurchaseStatusResponse result.
Definition LootLockerPurchasesRequestHandler.h:508
void(* FLootLockerAsyncPurchaseInitiatedDelegate)(FLootLockerAsyncPurchaseInitiatedResponse)
C++ response callback delegate; receives an FLootLockerAsyncPurchaseInitiatedResponse result.
Definition LootLockerPurchasesRequestHandler.h:506
ELootLockerRefundWarningDetailType
Possible warning types in a refund response.
Definition LootLockerPurchasesRequestHandler.h:326
ELootLockerAsyncPurchaseStatus
Possible statuses for an async purchase.
Definition LootLockerPurchasesRequestHandler.h:456
void(* FLootLockerBeginSteamPurchaseRedemptionDelegate)(FLootLockerBeginSteamPurchaseRedemptionResponse)
C++ response callback delegate; receives an FLootLockerBeginSteamPurchaseRedemptionResponse result.
Definition LootLockerPurchasesRequestHandler.h:530
void(* FActivateRentalAssetResponseDelegate)(FLootLockerActivateRentalAssetResponse)
C++ response callback delegate; receives an FLootLockerActivateRentalAssetResponse result.
Definition LootLockerPurchasesRequestHandler.h:528
Definition LootLockerPurchasesRequestHandler.h:16
Response from initiating an async purchase.
Definition LootLockerPurchasesRequestHandler.h:470
Definition LootLockerPurchasesRequestHandler.h:511
FTimerHandle AsyncPurchaseProcessTimerHandle
Definition LootLockerPurchasesRequestHandler.h:521
TArray< FLootLockerCatalogItemAndQuantityPair > Items
Definition LootLockerPurchasesRequestHandler.h:515
FLootLockerAsyncPurchaseProcess(float _PollingIntervalSeconds, float TimeoutAfterMinutes)
FLootLockerPlayerData PlayerData
Definition LootLockerPurchasesRequestHandler.h:516
FDateTime TimeoutTime
Definition LootLockerPurchasesRequestHandler.h:517
Response from polling the status of an async purchase.
Definition LootLockerPurchasesRequestHandler.h:484
Request to begin the Steam purchase redemption process for a catalog item for a specific class,...
Definition LootLockerPurchasesRequestHandler.h:223
Request to begin the Steam purchase redemption process for a catalog item, specifying the Steam user ...
Definition LootLockerPurchasesRequestHandler.h:194
Response indicating whether the Steam purchase redemption process started successfully,...
Definition LootLockerPurchasesRequestHandler.h:237
Pairs a catalog listing identifier with the quantity to purchase.
Definition LootLockerPurchasesRequestHandler.h:27
Request to create a Stripe Checkout session for a catalog item.
Definition LootLockerPurchasesRequestHandler.h:541
Response from creating a Stripe Checkout session.
Definition LootLockerPurchasesRequestHandler.h:555
Request to finalize a completed Steam purchase redemption by entitlement identifier.
Definition LootLockerPurchasesRequestHandler.h:284
Definition LootLockerPlayerData.h:12
Request to purchase one or more catalog items from a specific wallet.
Definition LootLockerPurchasesRequestHandler.h:46
Request to query the current status of a Steam purchase redemption by entitlement identifier.
Definition LootLockerPurchasesRequestHandler.h:256
Response containing the current redemption status of a Steam purchase.
Definition LootLockerPurchasesRequestHandler.h:270
Request to redeem an Apple App Store purchase for a specific class, extending the player request with...
Definition LootLockerPurchasesRequestHandler.h:84
Request to redeem an Apple App Store purchase for the current player using a transaction identifier,...
Definition LootLockerPurchasesRequestHandler.h:65
Request to redeem one or more Epic Games Store entitlements for a specific character,...
Definition LootLockerPurchasesRequestHandler.h:160
Request to redeem one or more Epic Games Store entitlements for the current player using an Epic acco...
Definition LootLockerPurchasesRequestHandler.h:131
Request to redeem a Google Play Store purchase for a specific class using a product identifier,...
Definition LootLockerPurchasesRequestHandler.h:117
Request to redeem a Google Play Store purchase for the current player using a product identifier and ...
Definition LootLockerPurchasesRequestHandler.h:98
Definition LootLockerPurchasesRequestHandler.h:336
Definition LootLockerPurchasesRequestHandler.h:426
Definition LootLockerPurchasesRequestHandler.h:360
Definition LootLockerPurchasesRequestHandler.h:375
Definition LootLockerPurchasesRequestHandler.h:345
Definition LootLockerPurchasesRequestHandler.h:393
Definition LootLockerPurchasesRequestHandler.h:414
Base response struct — every SDK callback receives a struct that derives from this.
Definition LootLockerResponse.h:19