/** * 申请页面 * @param PageService $pageService * @param ShakeAroundClient $shakeAroundClient * @param WeixinClient $weixinClient * @return string */ public function create(PageService $pageService, ShakeAroundClient $shakeAroundClient) { $requestData = json_decode($this->inputData, true); $validator = Validator::make($requestData, ['title' => 'required|max:6', 'description' => 'required|max:7', 'icon_url' => 'required', 'url' => '', 'comment' => '']); if ($validator->fails()) { return RestHelp::parametersIllegal($validator->messages()->first()); } $guid = Uuid::v4(false); //TODO 检查各个字段长度 $arrPage = ['title' => $requestData['title'], 'description' => $requestData['description'], 'comment' => isset($requestData['comment']) ? $requestData['comment'] : '', 'icon_url' => $requestData['icon_url'], 'url' => Config::get('app.url') . str_replace('GUID', $guid, Config::get("weixin.callback_url"))]; $appid = Session::get('wx_appid'); $appsecret = Session::get('wx_appsecret'); $page = new Page($arrPage); try { $page->page_url = $page->url; $pageId = $pageService->applyPageOnline($shakeAroundClient, $page, $appid, $appsecret); } catch (\Exception $e) { return RestHelp::encodeResult($e->getCode(), $e->getMessage()); } $page->page_id = $pageId; unset($page->page_url); $page->url = empty($requestData['url']) ? "" : $requestData['url']; $page->guid = $guid; $page->wx_mp_id = Session::get('wx_mp_id'); $id = $pageService->create($page); return RestHelp::success(['page_id' => $id]); }
/** * 增加页面POST * @author Hanxiang * @param PageService $pageService * @param ShakeAroundClient $shakeAroundClient * @return view */ public function addPost(PageService $pageService, ShakeAroundClient $shakeAroundClient) { $input = Input::all(); $wx_mp_id = $input['wx-mp-id']; $title = $input['txt-title']; $subtitle = $input['txt-subtitle']; $url = $input['txt-url']; $comment = $input['txt-comment']; $validator = Validator::make($input, ['wx-mp-id' => 'required', 'txt-title' => 'required', 'txt-subtitle' => 'required', 'txt-url' => 'required', 'txt-comment' => '']); if ($validator->fails()) { return redirect('/admin/wxpages/add')->with('wxmps', self::getCurrentWxMps())->with('result', false)->with('msg', '参数错误'); } $file = Input::file('file-icon'); $ext = $file->getClientOriginalExtension(); $filename = Uuid::v4(false) . ".{$ext}"; $file->move(public_path("pageicons"), $filename); $allFilename = public_path("pageicons/") . $filename; $wxMp = WeixinMp::find($wx_mp_id); if (!$wxMp) { return redirect('/admin/wxpages/add')->with('wxmps', self::getCurrentWxMps())->with('result', false)->with('msg', '操作失败,公众号不存在'); } $appid = $wxMp->appid; $appsecret = $wxMp->appsecret; $guid = Uuid::v4(false); $arrPage = ['wx_mp_id' => $wx_mp_id, 'title' => $title, 'description' => $subtitle, 'comment' => $comment, 'icon_url' => "local://" . $allFilename, 'url' => Config::get('app.url') . str_replace('GUID', $guid, Config::get("weixin.callback_url"))]; $page = new Page($arrPage); try { $page->page_url = $page->url; $pageId = $pageService->applyPageOnline($shakeAroundClient, $page, $appid, $appsecret); } catch (\Exception $e) { return redirect('/admin/wxpages/add')->with('wxmps', self::getCurrentWxMps())->with('result', false)->with('msg', '操作失败。' . $e->getMessage()); } $page->page_id = $pageId; unset($page->page_url); $page->guid = $guid; $page->url = empty($url) ? "" : $url; $id = $pageService->create($page); return redirect('/admin/wxpages')->with('result', true)->with('msg', "操作成功"); }