php分享邀请实现
实现邀请码生成
生成唯一邀请码可使用uniqid或自定义算法。以下示例结合用户ID和随机字符串:
function generateInviteCode($userId) {
$prefix = 'INV';
$hash = md5($userId . time());
return $prefix . substr($hash, 0, 8);
}
数据库结构设计
创建邀请关系表存储数据:
CREATE TABLE `user_invites` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`inviter_id` int(11) NOT NULL,
`invitee_id` int(11) DEFAULT NULL,
`invite_code` varchar(32) NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `invite_code` (`invite_code`)
);
邀请链接生成
生成带参数的邀请链接:
$inviteUrl = 'https://example.com/register?invite_code=' . urlencode($inviteCode);
邀请注册处理
注册时验证邀请码有效性:
function validateInviteCode($code) {
$stmt = $pdo->prepare("SELECT * FROM user_invites WHERE invite_code = ? AND invitee_id IS NULL");
$stmt->execute([$code]);
return $stmt->fetch(PDO::FETCH_ASSOC);
}
邀请关系绑定
注册成功后更新邀请关系:
function bindInviteRelation($inviteId, $inviteeId) {
$stmt = $pdo->prepare("UPDATE user_invites SET invitee_id = ? WHERE id = ?");
return $stmt->execute([$inviteeId, $inviteId]);
}
邀请统计功能
查询用户邀请成功数量:
function countSuccessfulInvites($userId) {
$stmt = $pdo->prepare("SELECT COUNT(*) FROM user_invites WHERE inviter_id = ? AND invitee_id IS NOT NULL");
$stmt->execute([$userId]);
return $stmt->fetchColumn();
}
邀请奖励机制
实现奖励发放逻辑示例:

function grantInviteReward($userId) {
$successCount = countSuccessfulInvites($userId);
if ($successCount % 5 == 0) {
// 每邀请5人发放奖励
addUserCredit($userId, 100);
}
}






