API 参考
注意事项
初始化要求
调用合规认证任何 API 函数前,必须先成功调用 TapSDK_Init 进行初始化。未初始化或初始化失败时,调用合规认证函数将返回错误或者非预期结果。
字符串编码
合规认证所有 API 函数接受和返回的字符串参数(char*),都是 UTF-8 编码,请根据项目实际情况自行转换。
数据类型定义
枚举类型
TapComplianceActionType
防沉迷通知的 UI 动作类型:
enum {
TapComplianceActionType_None = 0, // 无动作
TapComplianceActionType_Toast = 1, // 展示 Toast 提示
TapComplianceActionType_Alert = 2, // 展示弹窗提示
TapComplianceActionType_Exit = 3, // 必须退出游戏
};
typedef uint32_t TapComplianceActionType;
TapComplianceRealNameStatus
实名认证结果状态:
enum {
TapComplianceRealNameStatus_None = 0, // 未知状态
TapComplianceRealNameStatus_Success = 1, // 实名成功
TapComplianceRealNameStatus_Canceled = 2, // 用户取消实名
TapComplianceRealNameStatus_Failed = 3, // 实名失败
};
typedef uint32_t TapComplianceRealNameStatus;
结构体类型
字节对齐
合规认证使用的所有结构体类型,均使用 8 字节对齐:#pragma pack(push, 8)。
TapComplianceAction
单个防沉迷 UI 动作:
typedef struct {
TapComplianceActionType action_type; // UI 动作类型
const char* title; // 标题
const char* description; // 描述
uint32_t display_duration_seconds; // 展示时长(秒)
} TapComplianceAction;
TapComplianceActionsEvent
防沉迷通知事件,ComplianceActionsEvent 回调的数据类型:
typedef struct {
uint32_t count;
const TapComplianceAction* actions;
} TapComplianceActionsEvent;
TapComplianceEnsureRealNameResponse
实名认证结果,ComplianceEnsureRealName 回调的数据类型:
typedef struct {
int64_t request_id; // 请求 ID,与调用时传入的值一致
const TapSDK_Error* error; // 错误信息,NULL 表示请求成功
TapComplianceRealNameStatus status; // 实名状态
} TapComplianceEnsureRealNameResponse;
TapComplianceCheckPaymentLimitRequest
支付限额检查请求:
typedef struct {
uint32_t amount; // 支付金额,单位:分(如 64800 表示 648 元)
} TapComplianceCheckPaymentLimitRequest;
TapComplianceCheckPaymentLimitResponse
支付限额检查响应:
typedef struct {
bool allow; // 是否可支付
char title[256]; // 不可支付时展示的标题
char description[4096]; // 不可支付时展示的描述
} TapComplianceCheckPaymentLimitResponse;
TapComplianceSubmitPaymentRequest
充值上报请求:
typedef struct {
uint32_t amount; // 支付金额,单位:分(如 64800 表示 648 元)
} TapComplianceSubmitPaymentRequest;
API 函数
TapCompliance
获取合规认证单例对象。
ITapCompliance* TapCompliance();
返回值: 合规认证单例对象,传入其他合规认证 API 的 self 参数。
TapCompliance_AsyncEnsureRealName
发起实名认证的异步请求。如果用户未实名,TapTap 客户端会弹出实名窗口。
TapSDK_Result TapCompliance_AsyncEnsureRealName(
ITapCompliance* self,
int64_t request_id
);
参数:
self:TapCompliance()返回的合规认证单例对象request_id:开发者生成的请求 ID,回调时原样返回,可用于对应原始请求
返回值:
TapSDK_Result_OK:请求发起成功,结果通过ComplianceEnsureRealName事件回调返回- 其他值:请求发起失败,不会触发回调
TapCompliance_EnableAntiAddiction
启动防沉迷检查。需在 TapCompliance_AsyncEnsureRealName 成功(TapComplianceRealNameStatus_Success)后调用。
TapSDK_Result TapCompliance_EnableAntiAddiction(
ITapCompliance* self
);
参数:
self:TapCompliance()返回的合规认证单例对象
返回值:
TapSDK_Result_OK:防沉迷检查已启动,后续通知通过ComplianceActionsEvent事件回调返回- 其他值:启动失败,不会触发回调
TapCompliance_CheckPaymentLimit
检查支付限额(同步请求)。需在 TapCompliance_EnableAntiAddiction 完成后才能调用。
TapSDK_Result TapCompliance_CheckPaymentLimit(
ITapCompliance* self,
const TapComplianceCheckPaymentLimitRequest* request,
TapComplianceCheckPaymentLimitResponse* response
);
参数:
self:TapCompliance()返回的合规认证单例对象request:支付限额检查请求response:支付限额检查响应(出参)
返回值:
TapSDK_Result_OK:请求成功,结果写入response- 其他值:请求失败
TapCompliance_SubmitPayment
上报充值金额(同步请求)。应在用户支付成功后调用。
TapSDK_Result TapCompliance_SubmitPayment(
ITapCompliance* self,
const TapComplianceSubmitPaymentRequest* request
);
参数:
self:TapCompliance()返回的合规认证单例对象request:充值上报请求
返回值:
TapSDK_Result_OK:上报成功- 其他值:上报失败