diff --git a/app/admin/controller/Statistics.php b/app/admin/controller/Statistics.php index 26b9149c..51c4578a 100644 --- a/app/admin/controller/Statistics.php +++ b/app/admin/controller/Statistics.php @@ -43,10 +43,7 @@ class Statistics extends AdminBase return view(); } - public function test(){ - $result = StatisticsLogic::makeMpWechatQrcode(); - var_dump($result); - } + //交易分析 public function trading() { diff --git a/app/admin/controller/setting/Basic.php b/app/admin/controller/setting/Basic.php index 9eba470b..bb60e022 100644 --- a/app/admin/controller/setting/Basic.php +++ b/app/admin/controller/setting/Basic.php @@ -226,4 +226,9 @@ class Basic extends AdminBase return JsonServer::success('操作成功'); } } + + public function qrCode(){ + $result = BasicLogic::makeMpWechatQrcode(); + return JsonServer::success('操作成功',$result); + } } \ No newline at end of file diff --git a/app/admin/logic/StatisticsLogic.php b/app/admin/logic/StatisticsLogic.php index d0d72957..23438f64 100644 --- a/app/admin/logic/StatisticsLogic.php +++ b/app/admin/logic/StatisticsLogic.php @@ -309,69 +309,6 @@ class StatisticsLogic extends Logic return ['count' => $goods_count, 'lists' => $goods_list]; } - public static function makeMpWechatQrcode( string $type = 'url', array $extra = []) - { - try { - $width = 430; - // 'env_version' => 'trial', - $envVersion = 'develop'; -// $envVersion = 'release'; - $page = "bundle/pages/user_spread/user_spread"; - $save_dir = public_path() . 'uploads/wxqrcode/'; - // 确保目录存在 - if (!is_dir($save_dir)) { - mkdir($save_dir, 0755, true); - } - $file_name = time() . '.png'; - $config = WeChatServer::getMnpConfig(); - $app = Factory::miniProgram($config); - - $response = $app->app_code->getUnlimit('type=1', [ -// 'scene' => 'type=1', - 'page' => $page, - 'width' => $width, - 'auto_color' => false, - 'line_color' => ['r' => 0, 'g' => 0, 'b' => 0], - 'is_hyaline' => false, - 'env_version' => $envVersion, - 'check_path' => false, - ]); - - if(is_array($response) && 41030 === $response['errcode']){ - - //开启错误提示,小程序未发布和页面不存在,返回提示 - if (41030 === $response['errcode']) { - return '所传page页面不存在,或者小程序没有发布'; - } - return $response['errmsg']; - } - - $contents = $response->getBody()->getContents(); - switch ($type){ - case 'file': - if ($response instanceof StreamResponse) { - $file_name = $response->saveAs($save_dir, $file_name); - $contents = $save_dir . $file_name; - } - break; - case 'url': // 保存并返回完整URL - $full_path = $save_dir . $file_name; - file_put_contents($full_path, $contents); - // 生成完整的可访问URL(根据实际域名调整) - $contents = request()->domain() . '/uploads/wxqrcode/' . $file_name; - break; - case 'base64': - $mp_base64 = chunk_split(base64_encode($contents)); - $contents = 'data:image/png;base64,' . $mp_base64; - break; - } - return data_success('',['qr_code'=>$contents, 'extra' => $extra]); - - - } catch (\EasyWeChat\Kernel\Exceptions\Exception $e){ - return data_error($e->getMessage()); - } - } } diff --git a/app/admin/logic/setting/BasicLogic.php b/app/admin/logic/setting/BasicLogic.php index 0cd20bb6..a723ea0c 100644 --- a/app/admin/logic/setting/BasicLogic.php +++ b/app/admin/logic/setting/BasicLogic.php @@ -6,6 +6,9 @@ use app\common\basics\Logic; use app\common\server\ConfigServer; use app\common\server\FileServer; use app\common\server\UrlServer; +use app\common\server\WeChatServer; +use EasyWeChat\Factory; +use EasyWeChat\Kernel\Http\StreamResponse; /** * 网站基础设置 @@ -166,4 +169,69 @@ class BasicLogic extends Logic return true; } + + public static function makeMpWechatQrcode( string $type = 'url', array $extra = []) + { + + try { + $width = 430; + // 'env_version' => 'trial', + $envVersion = 'develop'; +// $envVersion = 'release'; + $page = "bundle/pages/user_spread/user_spread"; + $save_dir = public_path() . 'uploads/wxqrcode/'; + // 确保目录存在 + if (!is_dir($save_dir)) { + mkdir($save_dir, 0755, true); + } + $file_name = time() . '.png'; + $config = WeChatServer::getMnpConfig(); + $app = Factory::miniProgram($config); + + $response = $app->app_code->getUnlimit('type=1', [ +// 'scene' => 'type=1', + 'page' => $page, + 'width' => $width, + 'auto_color' => false, + 'line_color' => ['r' => 0, 'g' => 0, 'b' => 0], + 'is_hyaline' => false, + 'env_version' => $envVersion, + 'check_path' => false, + ]); + + if(is_array($response) && 41030 === $response['errcode']){ + + //开启错误提示,小程序未发布和页面不存在,返回提示 + if (41030 === $response['errcode']) { + return '所传page页面不存在,或者小程序没有发布'; + } + return $response['errmsg']; + } + + $contents = $response->getBody()->getContents(); + switch ($type){ + case 'file': + if ($response instanceof StreamResponse) { + $file_name = $response->saveAs($save_dir, $file_name); + $contents = $save_dir . $file_name; + } + break; + case 'url': // 保存并返回完整URL + $full_path = $save_dir . $file_name; + file_put_contents($full_path, $contents); + // 生成完整的可访问URL(根据实际域名调整) + $contents = request()->domain() . '/uploads/wxqrcode/' . $file_name; + break; + case 'base64': + $mp_base64 = chunk_split(base64_encode($contents)); + $contents = 'data:image/png;base64,' . $mp_base64; + break; + } + return data_success('',['qr_code'=>$contents, 'extra' => $extra]); + + + } catch (\EasyWeChat\Kernel\Exceptions\Exception $e){ + return data_error($e->getMessage()); + } + } } \ No newline at end of file diff --git a/app/admin/view/setting/basic/website_base.html b/app/admin/view/setting/basic/website_base.html index 88757d77..615f77bb 100644 --- a/app/admin/view/setting/basic/website_base.html +++ b/app/admin/view/setting/basic/website_base.html @@ -36,18 +36,18 @@
- -
-