API Reference
Important Notes
You must successfully call TapSDK_Init before calling any Compliance API. Calling compliance functions without initialization or after initialization failure will return errors or unexpected results.
All string parameters (char*) accepted and returned by Compliance APIs are UTF-8 encoded. Convert as needed for your project.
Data Type Definitions
Enum Types
TapComplianceActionType
UI action type for anti-addiction notifications:
enum {
TapComplianceActionType_None = 0, // No action
TapComplianceActionType_Toast = 1, // Show a Toast message
TapComplianceActionType_Alert = 2, // Show an alert dialog
TapComplianceActionType_Exit = 3, // Must exit the game
};
typedef uint32_t TapComplianceActionType;
TapComplianceRealNameStatus
Real-name verification result status:
enum {
TapComplianceRealNameStatus_None = 0, // Unknown status
TapComplianceRealNameStatus_Success = 1, // Verification succeeded
TapComplianceRealNameStatus_Canceled = 2, // User canceled verification
TapComplianceRealNameStatus_Failed = 3, // Verification failed
};
typedef uint32_t TapComplianceRealNameStatus;
Struct Types
All struct types used by the compliance module use 8-byte alignment: #pragma pack(push, 8).
TapComplianceAction
A single anti-addiction UI action:
typedef struct {
TapComplianceActionType action_type; // UI action type
const char* title; // Title
const char* description; // Description
uint32_t display_duration_seconds; // Display duration in seconds
} TapComplianceAction;
TapComplianceActionsEvent
Anti-addiction notification event; the data type for the ComplianceActionsEvent callback:
typedef struct {
uint32_t count;
const TapComplianceAction* actions;
} TapComplianceActionsEvent;
TapComplianceEnsureRealNameResponse
Real-name verification result; the data type for the ComplianceEnsureRealName callback:
typedef struct {
int64_t request_id; // Request ID; echoes the value passed by the caller
const TapSDK_Error* error; // Error info. NULL = success; non-NULL = failure
TapComplianceRealNameStatus status; // Verification status
} TapComplianceEnsureRealNameResponse;
TapComplianceCheckPaymentLimitRequest
Payment limit check request:
typedef struct {
uint32_t amount; // Payment amount in fen (e.g. 64800 = ¥648)
} TapComplianceCheckPaymentLimitRequest;
TapComplianceCheckPaymentLimitResponse
Payment limit check response:
typedef struct {
bool allow; // Whether payment is allowed
char title[256]; // Title to display when payment is not allowed
char description[4096]; // Description to display when payment is not allowed
} TapComplianceCheckPaymentLimitResponse;
TapComplianceSubmitPaymentRequest
Payment report request:
typedef struct {
uint32_t amount; // Payment amount in fen (e.g. 64800 = ¥648)
} TapComplianceSubmitPaymentRequest;
API Functions
TapCompliance
Get the compliance interface singleton.
ITapCompliance* TapCompliance();
Return value: The compliance interface singleton, passed as the self parameter to other compliance APIs.
TapCompliance_AsyncEnsureRealName
Start an async real-name verification request. If the user has not verified, TapTap will show the verification UI.
TapSDK_Result TapCompliance_AsyncEnsureRealName(
ITapCompliance* self,
int64_t request_id
);
Parameters:
self: Compliance singleton returned byTapCompliance()request_id: Developer-generated request ID; echoed in the callback to match the original request
Return value:
TapSDK_Result_OK: Request started successfully; result is returned via theComplianceEnsureRealNameevent callback- Other values: Request failed to start; no callback will be invoked
TapCompliance_EnableAntiAddiction
Start the anti-addiction check. Must be called after TapCompliance_AsyncEnsureRealName succeeds (TapComplianceRealNameStatus_Success).
TapSDK_Result TapCompliance_EnableAntiAddiction(
ITapCompliance* self
);
Parameters:
self: Compliance singleton returned byTapCompliance()
Return value:
TapSDK_Result_OK: Anti-addiction check started; subsequent notifications are returned via theComplianceActionsEventevent callback- Other values: Failed to start; no callback will be invoked
TapCompliance_CheckPaymentLimit
Check the payment limit (synchronous). Must be called after TapCompliance_EnableAntiAddiction has completed.
TapSDK_Result TapCompliance_CheckPaymentLimit(
ITapCompliance* self,
const TapComplianceCheckPaymentLimitRequest* request,
TapComplianceCheckPaymentLimitResponse* response
);
Parameters:
self: Compliance singleton returned byTapCompliance()request: Payment limit check requestresponse: Payment limit check response (out parameter)
Return value:
TapSDK_Result_OK: Request succeeded; result is written toresponse- Other values: Request failed
TapCompliance_SubmitPayment
Report the payment amount (synchronous). Should be called after the user completes a successful payment.
TapSDK_Result TapCompliance_SubmitPayment(
ITapCompliance* self,
const TapComplianceSubmitPaymentRequest* request
);
Parameters:
self: Compliance singleton returned byTapCompliance()request: Payment report request
Return value:
TapSDK_Result_OK: Report succeeded- Other values: Report failed