diff --git a/Server/application/cunkebao/controller/plan/PlanSceneV1Controller.php b/Server/application/cunkebao/controller/plan/PlanSceneV1Controller.php index c3c0c1a1..cee62016 100644 --- a/Server/application/cunkebao/controller/plan/PlanSceneV1Controller.php +++ b/Server/application/cunkebao/controller/plan/PlanSceneV1Controller.php @@ -397,6 +397,7 @@ class PlanSceneV1Controller extends BaseController $posterWeChatMiniProgram = new PosterWeChatMiniProgram(); $result = $posterWeChatMiniProgram->generateMiniProgramCodeWithScene($taskId); + return $result; return ResponseHelper::success($result, '获取小程序码成功'); diff --git a/Server/application/cunkebao/controller/plan/PosterWeChatMiniProgram.php b/Server/application/cunkebao/controller/plan/PosterWeChatMiniProgram.php index a03f1677..075a5217 100644 --- a/Server/application/cunkebao/controller/plan/PosterWeChatMiniProgram.php +++ b/Server/application/cunkebao/controller/plan/PosterWeChatMiniProgram.php @@ -8,7 +8,6 @@ use EasyWeChat\Factory; // use EasyWeChat\Kernel\Exceptions\DecryptException; use EasyWeChat\Kernel\Http\StreamResponse; use think\Db; -use app\common\util\AliyunOSS; class PosterWeChatMiniProgram extends Controller { public function index() @@ -26,9 +25,7 @@ class PosterWeChatMiniProgram extends Controller // 生成小程序码,存客宝-操盘手调用 public function generateMiniProgramCodeWithScene($taskId = '') { - if(empty($taskId)) { - $taskId = request()->param('id'); - } + $taskId = request()->param('id'); $app = Factory::miniProgram(self::MINI_PROGRAM_CONFIG); @@ -47,59 +44,19 @@ class PosterWeChatMiniProgram extends Controller // 保存小程序码到文件 if ($response instanceof StreamResponse) { - $savePath = ROOT_PATH . '/runtime/img'; - // 确保目录存在 - if (!is_dir($savePath)) { - mkdir($savePath, 0755, true); - } - $filename = $response->saveAs($savePath, 'appcode_'.$taskId.'.png'); - - // 上传到OSS - if ($filename) { - $ossUrl = $this->uploadToOSS($filename); - // 删除本地文件 - if (file_exists($filename)) { - unlink($filename); - } - // 如果OSS上传成功,返回OSS URL;否则返回本地文件路径 - return $ossUrl ?: $filename; - } + // $filename = 'minicode_' . $taskId . '.png'; + // $response->saveAs('path/to/codes', $filename); + // return 'path/to/codes/' . $filename; + $img = $response->getBody()->getContents();//获取图片二进制流 + $img_base64 = 'data:image/png;base64,' .base64_encode($img);//转化base64 + return $img_base64; } // return false; return null; } - /** - * 上传文件到OSS - * @param string $filePath 本地文件路径 - * @return string|false 成功返回OSS URL,失败返回false - */ - private function uploadToOSS($filePath) - { - try { - // 生成OSS对象名称 - $objectName = AliyunOSS::generateObjectName('appcode_' . time() . '.png'); - - // 上传到OSS - $result = AliyunOSS::uploadFile($filePath, $objectName); - - if ($result['success']) { - // 返回完整的OSS URL - return AliyunOSS::ossUrl . '/' . $objectName; - } else { - // 记录错误日志 - \think\facade\Log::error('OSS上传失败: ' . $result['error'] . ' 文件: ' . $filePath); - return false; - } - } catch (\Exception $e) { - // 记录错误日志 - \think\facade\Log::error('OSS上传异常: ' . $e->getMessage() . ' 文件: ' . $filePath); - return false; - } - } - // getPhoneNumber public function getPhoneNumber() {