在Fastadmin中实现创建二维码-邀请用户
目录
创建邀请二维码
安装生成库
在项目根目录下打开命令行,安装二维码生成库
命令如下:
composer require endroid/qr-code

代码实例
创建邀请码入口
在api/controller/user.php中创建方法,也就是接口地址入口,
调用auth中的方法,并返回前端数据。
如下:
/**
* 创建邀请码
*
* @ApiMethod (POST)
*/
public function createInviteCode()
{
$filePath = $this->auth->createInviteCode($inviteCode);
if (!$filePath) {
$this->success(__('Operation failed'));
}
$this->success('success', [
'invite_code' => $inviteCode,
'invite_code_img' => local_url($filePath)
]);
}
实现邀请码
然后在common/library/auth.php中实现邀请码,
实现逻辑为:首先判断用户是否有邀请码及邀请二维码,
如果存在,则返回;
不存在,先创建邀请码,之后生成二维码,
保存本地并同步用户数据,最后返回数据。
这一步生成二维码时,也可以使用网站链接,用户扫描时直接访问网站。
如下:
/**
* 创建邀请码
* @param $inviteCode
* @return string
* @throws \Exception
*/
public function createInviteCode(&$inviteCode)
{
$user = User::getById($this->_user->id);
if ($user->invite_code) {
$inviteCode = $user->invite_code;
return $user->invite_code_img;
}
// 创建邀请码
$inviteCode = Random::alnum();
$user->invite_code = $inviteCode;
// 1. 定义二维码内容(可以是文本、URL、联系方式等)
$qrCode = QrCode::create($inviteCode);
// 2. 配置二维码参数(可选)
$qrCode->setSize(300); // 尺寸(像素)
$qrCode->setMargin(10); // 边距(像素)
// 3. 生成并输出二维码(直接显示在浏览器)
$writer = new PngWriter();
$result = $writer->write($qrCode);
// 创建文件夹
$qr_path = './uploads/invite';
if (!is_dir($qr_path)) {
@mkdir($qr_path, 0755, true);
}
$filePath = $qr_path . '/'. 'qr_'.$this->_user->id . '.png';
$result->saveToFile($filePath); // 保存路径
$user->invite_code_img = $filePath;
$user->save();
return $filePath;
}
之后就是在注册时,接收邀请码,加入邀请关系。
并依照业务赠送奖励。
总结
在Fastadmin中实现创建二维码-邀请用户,主要介绍如何生成邀请码与二维码
182

被折叠的 条评论
为什么被折叠?



