// 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<IHttpRequest, ESPMode::ThreadSafe> request,
|
TSharedPtr<IHttpResponse, ESPMode::ThreadSafe> 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;
|
};
|