|
|
@@ -15,17 +15,13 @@
|
|
|
namespace app\adminapi\logic\group_activity;
|
|
|
|
|
|
|
|
|
+use think\Exception;
|
|
|
use think\facade\Db;
|
|
|
+use think\facade\Log;
|
|
|
use app\common\logic\BaseLogic;
|
|
|
+use app\common\service\wechat\WeChatMnpService;
|
|
|
use app\common\model\group_activity\GroupActivity;
|
|
|
-use Endroid\QrCode\QrCode;
|
|
|
-use Endroid\QrCode\Logo\Logo;
|
|
|
-use Endroid\QrCode\Color\Color;
|
|
|
-use Endroid\QrCode\Writer\PngWriter;
|
|
|
-use Endroid\QrCode\Encoding\Encoding;
|
|
|
-use Endroid\QrCode\Label\Font\NotoSans;
|
|
|
-use Endroid\QrCode\Label\LabelAlignment;
|
|
|
-use Endroid\QrCode\ErrorCorrectionLevel;
|
|
|
+
|
|
|
/**
|
|
|
* 拼团活动逻辑
|
|
|
* Class GroupActivityLogic
|
|
|
@@ -166,52 +162,32 @@ class GroupActivityLogic extends BaseLogic
|
|
|
* 获取活动二维码
|
|
|
* @return string|void
|
|
|
*/
|
|
|
- public static function getQRCode($params,$url)
|
|
|
+ public static function getQRCode($params,$url='weixiu.kyjlkj.com')
|
|
|
{
|
|
|
try {
|
|
|
- $savePath = './uploads/group_activity';
|
|
|
- $file_name = $savePath.'/123456789'.$params['id'].'.png';
|
|
|
-
|
|
|
- //判断二维码是否存在
|
|
|
- if (file_exists($file_name)) {
|
|
|
- return $url.'/'.$file_name;
|
|
|
+ $mnp_page = 'pages/web_view/group';
|
|
|
+ if(empty($params['mnp_page'])){
|
|
|
+ throw new Exception('路径错误');
|
|
|
}
|
|
|
-
|
|
|
- // 要生成二维码的 H5 链接
|
|
|
- $h5Url = 'https://weixiuadmin.kyjlkj.com?id=' . $params['id'];
|
|
|
-
|
|
|
- // 创建一个 PNG 写入器实例
|
|
|
- $writer = new PngWriter();
|
|
|
-
|
|
|
- // 创建二维码实例
|
|
|
- $qrCode = QrCode::create($h5Url)
|
|
|
- ->setEncoding(new Encoding('UTF-8'))
|
|
|
- ->setErrorCorrectionLevel(ErrorCorrectionLevel::High)
|
|
|
- ->setSize(300)
|
|
|
- ->setMargin(10)
|
|
|
- ->setForegroundColor(new Color(0, 0, 0))
|
|
|
- ->setBackgroundColor(new Color(255, 255, 255));
|
|
|
- // 添加文字标签
|
|
|
- $label = \Endroid\QrCode\Label\Label::create('众盾闪修拼团活动')
|
|
|
- ->setFont(new NotoSans(20))
|
|
|
- ->setAlignment(LabelAlignment::Center);
|
|
|
-
|
|
|
- // 添加 logo
|
|
|
- $logoPath = './uploads/group_activity/logo.png';
|
|
|
- $logo = Logo::create($logoPath)->setResizeToWidth(80);
|
|
|
- // 生成二维码图像
|
|
|
- $result = $writer->write($qrCode, $logo, $label);
|
|
|
-
|
|
|
- // 定义保存二维码的文件路径
|
|
|
- if(!is_dir($savePath)){
|
|
|
- mkdir($savePath);
|
|
|
+ $scene_page = 'group';
|
|
|
+ Log::info('getQRCode:'.rawurlencode($scene_page));
|
|
|
+ $response = (new WeChatMnpService())->getUnlimitedQRCode(
|
|
|
+ 'page='.$scene_page.'&id='.$params['id'],
|
|
|
+ $mnp_page,
|
|
|
+ env('miniprogram.mini_env_version', 'release'),
|
|
|
+ false
|
|
|
+ );
|
|
|
+ Log::info('getQRCode:'.json_encode([$response]));
|
|
|
+ $qrcode = $response->getContent();
|
|
|
+ if(!is_dir('./uploads/wx_qrcode/'.date('Ymd'))){
|
|
|
+ mkdir('./uploads/wx_qrcode/'.date('Ymd'));
|
|
|
}
|
|
|
- // 将二维码保存到本地文件
|
|
|
- $result->saveToFile($file_name);
|
|
|
+ $file_name = 'uploads/wx_qrcode/'.date('Ymd').'/'.time().rand(1000,9999).'.png';
|
|
|
+ file_put_contents($file_name, $qrcode);
|
|
|
return $url.'/'.$file_name;
|
|
|
} catch (\Throwable $e) {
|
|
|
- // 失败
|
|
|
- echo $e->getMessage();
|
|
|
+ Log::info('getQRCode:'.$e->getMessage());
|
|
|
+ return '';
|
|
|
}
|
|
|
}
|
|
|
}
|