orderBy('sort', 'desc')->get()); } public function userQrCode(Request $request) { $user = $request->user(); $qr_code = $user->userInfo->invite_qrcode; if (!$qr_code || $request->input('force')) { $disk = Storage::disk('public'); $app = $this->getWechatApp(); $scene = http_build_query([ 'i' => $user->userInfo->code ]); $response = $app->app_code->getUnlimit($scene, [ 'page' => 'pages/welcome/index', 'check_path' => false, // develop: 开发版, trial: 体验版 'env_version' => app()->isProduction() ? 'release' : $request->input('env_version', 'trial'), 'width' => $request->input('width', 200), ]); if ($response instanceof StreamResponse) { $filepath = 'invite-qrocde'; $filename = $user->id . '.png'; $response->saveAs($disk->path($filepath), $filename); $qr_code = $disk->url($filepath . '/' . $filename); $user->userInfo->update([ 'invite_qrcode' => $qr_code ]); } else { throw new BizException('生成失败'); } } return response()->json([ 'qr_code' => $qr_code, ]); } protected function getWechatApp($getway = 'default') { return \EasyWeChat\Factory::miniProgram(config('wechat.mini_program.' . $getway)); } }