// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Define/TapCDKeyResponse.h" #include "Interfaces/IHttpRequest.h" #include "UObject/Object.h" #include "HttpTapCDKey.generated.h" class IHttpResponse; class IHttpRequest; UCLASS(BlueprintType,Blueprintable) class TAPTAP_API UHttpTapCDKey : public UObject { GENERATED_BODY() public: DECLARE_DYNAMIC_MULTICAST_DELEGATE_ThreeParams(FHttpTapCDKeyRequestSuccessEventHandle, const FTapCDKeyResponse&,resp, int32,errCode, bool,isSuccess); UPROPERTY(BlueprintAssignable) FHttpTapCDKeyRequestSuccessEventHandle HttpTapCDKeyRequestSuccessEventHandle; void OnProcessRequestComplete( TSharedPtr request, TSharedPtr response, bool arg) const; /** * @brief 请求taptap的cdkey,请求结束后会回调HttpTapCDKeyRequestSuccessEventHandle事件 * @param key 请求的cdkey */ UFUNCTION(BlueprintCallable) void StartRequest( const FString& key); /** * @brief 生成时间戳(13位) * @return */ UFUNCTION(BlueprintCallable) int64 SpawnTimeStamp(); /** * @brief 根据时间戳,ClientID和CharacterID获取taptapcdkey的签名 * @param timestamp * @return */ UFUNCTION(BlueprintPure,BlueprintNativeEvent) FString GetSign(int64 timestamp) const; UPROPERTY(EditAnywhere,BlueprintReadWrite) FString ClientID; /** * @brief taptapCDKey参数 - CharacterID */ UPROPERTY(EditAnywhere,BlueprintReadWrite) FString CharacterID; /** * @brief taptapCDKey验证用的随机字符串 */ UPROPERTY(EditAnywhere,BlueprintReadWrite) FString NonceStr = TEXT("Noces"); /** * @brief 请求Timeout时间,秒.超过此时间后会返回失败 */ UPROPERTY(EditAnywhere,BlueprintReadWrite) int32 TimeOut = 5; };