input('client_id'); $room_id = $request->input('room_id'); $user = ['id' => 2, 'name' => 'Hankin', 'client_id' => $client_id, 'time' => date('Y-m-d H:i:s')]; Gateway::bindUid($client_id, $user['id']); Gateway::joinGroup($client_id, $room_id); $uid_infos = Gateway::getUidListByGroup($room_id); dd(array_keys($uid_infos)); return $this->success('ok', $user); } public function sendMessage(Request $request) { $uid = 1; $name = 'Hankin'; $res = Gateway::getClientIdByUid($uid); $content = $request->input('content'); $to_client_id = $request->input('to_client_id'); $room_id = $request->input('room_id'); $message = ['type' => 'say', 'from_client_id' => $res[0], 'from_client_name' => $name, 'content' => $content, 'time' => date('Y-m-d H:i:s')]; if ($to_client_id == 'all') { Gateway::sendToGroup($room_id, json_encode($message)); } else { } return $this->success('ok'); } public function updateViewerUser() { try { DB::table('temp_viewers')->whereNotNull('mobile')->where(function ($sql) { $sql->whereNull('user_id')->orWhere('user_id', 0)->orWhere('user_id', ''); })->orderBy('id', 'desc')->chunk(100, function ($viewers) { foreach ($viewers as $viewer) { $user_id = DB::table('users')->where("mobile", $viewer->mobile)->value('id'); if ($user_id) { DB::table('temp_viewers')->where("id", $viewer->id)->update(['user_id' => $user_id]); } } }); } catch (\Exception $e) { $this->getError($e); } } public function testCrmUsers() { $users = User::single()->approve()->pay()->fullinkUser(); $users = MerchantUser::whereHas('mpUser', function ($sql) { $sql->single()->approve()->fullinkUser(); })->whereHas('orders', function ($sql) { $sql->where('pay_status', '<>', 0)->where('price', '>', 0)->where('merchant_id', 491); }); dd($users->count()); } public function testTransfer(Request $request, $name) { try { return $this->$name($request); } catch (\Exception $e) { $this->getError($e); } } public function exportActivities(Request $request) { $communities = CommunityActivity::where('merchant_id', 491)->where('class', $request->class)->whereBetween("created_at", [20220101, 20230101])->orderby('id', 'asc')->get(); $activities = new CommunityActivitiesResource($communities); return \Excel::download(new CommunityActivityExport($activities), '2022年活动.xlsx'); } public function test($request) { } public function merchantEarningExport(Request $request) { // $orders = TouristOrder::with('anchor:m_id,name', 'refunds')->where('pay_status', 4)->where('price','>', 0)->where('pay_type', 'wechat')->whereBetween('created_at', [20220101, 20230101]); // if ($request->input('is_love')) { // $orders = $orders->whereIn('merchant_id', [491, 71]); // }else { // $orders = $orders->whereNotIn('merchant_id', [491, 71]); // } $orders = Order::where("pay_status", 'PAID')->where('price', '>', 0)->whereBetween('created_at', [20220101, 20230101])->get(); return \Excel::download(new MerchantEarningExport($orders), '2022会员收益.xlsx'); } public function evalOrders() { $orders = TouristOrder::whereHas('merchant_evaluate', function ($sql) { $sql->where('test_item_id', '<', 10000); })->where('type', 'evaluate')->where('price', '>', 0)->get(); return \Excel::download(new EvalOrdersExprt($orders), '壹点灵订单.xlsx'); } public function exportCityUsers(Request $request) { $city_arr = $request->input('city_arr'); $city_arr = explode(',', $city_arr); $users = User::whereHas("profileCourtship", function ($sql) use ($city_arr) { $sql->whereIn('city', $city_arr)->where('income', '>=', 5); })->where('is_real_approved', 1)->with('userDetailQrcode')->where('type', 'single')->where('hidden_profile', 'NONE')->paginate(); // return \Excel::download(new CityUsersExport($users), $city_arr[0].'城市用户.xlsx'); return view('city_users', ['users' => $users, 'city_arr' => $city_arr]); } public function exportProvinceUsers(Request $request) { set_time_limit(0); $province = $request->input('province'); $user_id = $request->user_id; $users = User::whereHas("profileCourtship", function ($sql) use ($province) { $sql->where('province', $province); })->where('type', 'loveing')->where("id", ">", $user_id)->limit(2000)->get(); return \Excel::download(new ProvinceUserExport($users), '省份用户.xlsx'); } public function testExport() { return \Excel::download(new TestExport(), 'test.xlsx'); } public function saasUserProfile() { $ias = IdentityAuthorization::all(); foreach ($ias as $ia) { $m_profile = MerchantUserProfile::where(['m_id' => $ia->m_id, 'user_id' => $ia->m_user_id])->first(); if (empty($m_profile)) { $keys = [ 'birthday', 'sex', 'state', 'belief', 'stature', 'weight', 'province', 'city', 'resident_province', 'resident_city', 'degree', 'industry', 'industry_sub', 'income', 'introduction', 'interest_hobby', 'mate_conditon', 'ideal_mate' ]; if (empty($ia->merchant_user->mpUser)) continue; $profile = new MerchantUserProfile(); $profile->m_id = $ia->m_id; $profile->user_id = $ia->m_user_id; foreach ($keys as $key) { if ($key == 'industry' || $key == 'industry_sub') { $profile->$key = $ia->merchant_user->mpUser->$key; continue; } $profile->$key = $ia->merchant_user->mpUser->sass_profileCourtship->$key; } DB::beginTransaction(); $profile->save(); $photos = ProfilePhoto::where('user_id', $ia->merchant_user->user_id)->select('user_id', 'photo', 'dateline')->get()->toArray(); foreach ($photos as &$photo) { $photo['user_id'] = $ia->m_user_id; $photo['m_id'] = $ia->m_id; $photo['created_at'] = $photo['updated_at'] = date('Y-m-d H:i:s'); } MerchantUserPhoto::insert($photos); DB::commit(); } } } public function exportUserCoin() { $coins = Coin::with('user')->where('remain_amount', '>', 0)->orderByDesc('remain_amount')->get(); $data = []; foreach ($coins as $coin) { $coin_value = CoinLog::where('type', 'RECSYSTEM')->where('user_id', $coin->user_id)->where('remark', 'like', '%邀请好友%')->sum('coin'); //减去提现的金额 $consume_coin = CoinWithdrawLog::where('user_id', $coin->user_id)->wherein('status', [0, 1])->wherein('is_hooked', [0, 1])->where('remark', '邀请好友')->sum('value'); $remain_coin = $coin_value - $consume_coin ?: 0; $arr = []; if ($remain_coin > 0) { $arr['user_id'] = $coin->user_id; $arr['name'] = $coin->user ? $coin->user->nickname : ''; $arr['amount'] = $remain_coin; $data[] = $arr; } } return \Excel::download(new UserCoinExport($data), '壹点灵订单.xlsx'); } public function showReportForms(Request $request) { return view('report_forms'); } public function makeReportForms(Request $request) { $start_date = $request->start_date; if (empty($start_date)) return $this->failure("请选择开始日期"); return \Excel::download(new ReportFormExport($start_date), $start_date . '福恋报表.xlsx'); // return $this->success('ok', $file); } public function statementExport(Request $request) { $date = $request->date; if (empty($date)) return $this->failure("请选择日期"); if ($request->pwd != "love_saas") return $this->failure("密码错误"); return \Excel::download(new StatementExport($date), date('m', strtotime($date)) . "月福恋报表.xlsx"); } public function statementExportV2(Request $request) { $date = $request->date; if (empty($date)) return $this->failure("请选择日期"); if ($request->pwd != "love_saas") return $this->failure("密码错误"); return \Excel::download(new StatementExportV2($date), date('m', strtotime($date)) . "月福恋报表.xlsx"); } public function statementExportV3(Request $request) { $date = $request->date; if (empty($date)) return $this->failure("请选择日期"); if ($request->pwd != "love_saas") return $this->failure("密码错误"); return \Excel::download(new StatementExportV3($date), date('m', strtotime($date)) . "月福恋报表.xlsx"); } public function statementLoveExport(Request $request) { $start_date = $request->start_date; return \Excel::download(new StatementExport($start_date, "love"), date('m', strtotime($start_date)) . "月福恋产品报表.xlsx"); } public function showStatementExport() { return view("statement"); } /** * 福恋报表-季度 * @param Request $request */ public function makeReportQuarter(Request $request) { $year = $request->year; if (empty($year)) return $this->failure("请选择年份"); return \Excel::download(new ReportQuarterExport($year . '0101'), $year . '年福恋报表.xlsx'); } public function getUrlqrcodes(Request $request) { $path = $request->input('path'); $path = "https://love.ufutx.com/api/official/live/wechat/FamilyAuth?merchant_id=44&url=https%3A%2F%2Flove.ufutx.com%2Fpu%2F%23%2FofflineSignIn%2F2115"; $url = parent::getUrlqrcode($path); return $this->success('ok', $url); } public function sh5Toekn() { $id = request()->id; $account = MerchantUser::where('id', $id)->first(); $token = $this->api_token($account); return $this->success('ok', $token); } public function mpToken() { $user_id = request()->user_id; $user = User::find($user_id); $token = $user->createToken($user->id)->accessToken; return $this->success('ok', $token); } //创建token public function api_token($account) { $token = $account->api_token; if ($token) { try { $result = decrypt($token); } catch (\Exception $e) { $token = encrypt($account->id . '-' . $account->mobile . '-' . time() . '-' . $account->email); $account->api_token = $token; $account->save(); } $time = explode('-', $result)[2]; if (time() - $time > 604800) { $token = encrypt($account->id . '-' . $account->mobile . '-' . time() . '-' . $account->email); $account->api_token = $token; $account->save(); } } else { $token = encrypt($account->id . '-' . $account->mobile . '-' . time() . '-' . $account->email); $account->api_token = $token; $account->save(); } return $token; } /** * 注销用户 */ public function writeOffUser(Request $request) { try { $code = $request->input('code'); $redis_code = Cache::get('write_off_user_code'); if (empty($code) || $redis_code != $code) return $this->failure("code失效"); $mobile = $request->mobile; if (empty($mobile)) return $this->failure('请输入手机号'); $user = User::where('mobile', $mobile)->first(); if (empty($user)) return $this->failure("手机号已注销"); // $close_users = DB::table('close_users')->get(); // $close_wechats = DB::table('close_wechats')->get(); // $data = [ // 'user' => $user, // 'user_wechat' => $user->wechat, // 'user_wechat_getAttributes' => $user->wechat->getAttributes(), // 'close_users' => $close_users, // 'close_wechats' => $close_wechats, // ]; DB::beginTransaction(); $data = $user->getAttributes(); $data['deleted_at'] = date("Y-m-d H:i:s"); DB::table('close_users')->insert($data); if ($user->wechat) { DB::table('close_wechats')->insert($user->wechat->getAttributes()); $user->wechat->forceDelete(); } $user->forceDelete(); DB::commit(); return $this->success('ok'); } catch (\Exception $e) { DB::rollBack(); $this->getError($e); return $this->failure($e->getMessage()); } } /** * 注销用户code * @param Request $request */ public function writeOffUserCode(Request $request) { $code = Cache::get('write_off_user_code'); if (empty($code)) { $code = uniqid() . time(); Cache::put('write_off_user_code', $code, 1); } return $this->success('ok', $code); } public function testChatMessages(Request $request) { $user_id = $request->user_id; $send_user_id = $request->send_user_id; $im_service = new IMService(env('IM_APP_KEY'), env('IM_APP_SECRET')); $begintime = $request->input('start_time', CommonUtilsService::getMillisecond() - 72 * 36600 * 1000); $endtime = $request->input('start_time', CommonUtilsService::getMillisecond()); $mine_messages = $im_service->querySessionMsg($user_id, $send_user_id, $begintime, $endtime); return $this->success('ok', $mine_messages); } public function userByOpenid($openid) { return MerchantUser::where('openid', $openid)->first(); } public function testOrderTransfer() { $count = 0; $mine_share_count = 0; $has_transfer_count = 0; $no_user_count = 0; $success_count = 0; TouristOrder::where('type', 'community')->where('type_id', 2201)->where('pay_status', 4)->whereIn('goods', ["参会者票", "特邀嘉宾票", "VIP票"])->whereNotNull('from_openid')->chunk(100, function ($orders) use (&$count, &$mine_share_count, &$has_transfer_count, &$no_user_count, &$success_count) { $count += count($orders); foreach ($orders as $order) { $user = $this->userByOpenid($order->from_openid); if (empty($user) || empty($order->from_openid)) { $no_user_count += 1; continue; } if ($user->id == $order->account_id) { $mine_share_count += 1; continue; } //判断是否已经转账 $res = $this->isTransferOrder($order, $user); if ($res) { $has_transfer_count += 1; continue; } // $this->transferOrder($order, $user); $success_count += 1; } }); return $this->success('ok', compact('count', 'has_transfer_count', 'no_user_count', 'success_count')); } public function transferOrder($order, $user) { DB::beginTransaction(); //转账金额 $amount = number_format($order->price * 0.25, 2); //修改商户账号 $m_earning_account = MEarningAccount::where('m_id', $order->merchant_id)->where('m_user_id', 0)->first(); $m_earning_account->decrement('balance', $amount); $m_earning_account->decrement('total_value', $amount); if ($m_earning_account->balance < 0) throw new \Exception("商户账号余额不足"); //创建转账订单 $trade_no = CommonUtilsService::getTradeNO(); $remark = "订单" . $order->id . "分享收益增加额外25%"; $name = $user->nickname ?: "未知"; $mobile = $user->mobile ?: "未知"; $order = \App\Models\Server\TouristOrder::create([ 'price' => $amount, 'pay_type' => 'wechat', 'type' => 'transfer', 'pay_status' => 4, 'trade_no' => $trade_no, 'withdrawal_radio' => 100, 'name' => $name, 'mobile' => $mobile, 'desc' => $remark, 'merchant_id' => $order->merchant_id, 'account_id' => $user->id, ]); //修改用户收益 $earning = $user->addEarning($order->merchant_id, 'transfer', $amount, $order->id); if ($earning === false) throw new \Exception('增加订单转账收益记录异常,号码:' . $order->id); //增加转账记录 $insert = ['m_id' => $order->merchant_id, 'amount' => $amount, 'mobile' => $mobile, 'm_earning_id' => $earning->id, 'name' => $name, 'remark' => $remark, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), 'recive_m_id' => 0, 'recive_m_user_id' => $user->id, 'nickname' => $user->nickname]; MerchantTransferLog::insert($insert); DB::commit(); } public function isTransferOrder($order, $user) { //判断订单在指定时间段是否有记录 // $res = MEarning::hasTransferOrder()->where(['m_id'=>$order->merchant_id, 'm_user_id'=>$user->id])->whereBetween('created_at',[$start_time, $end_time])->exists(); $res = MerchantTransferLog::where('remark', "订单" . $order->id . "分享收益增加额外25%")->exists(); return $res; } public function EarningAccountBan() { $account = MEarningAccount::where('is_banned', 1)->orderByDesc('id')->first(); CheckMEarningAccount::dispatch($account)->onQueue('love'); return $this->success('ok'); } public function testPartnerPay() { $sub_mchid = "1626601973"; $total = 0.01; $openid = "oPC_2vneOWpQbicNZQAUCxuwZ4mw"; $trade_no = CommonUtilsService::getTradeNo(); $notify_url = 'https://love.ufutx.com'; $desc = "测试订单"; $res = WechatService::partnerPay(1, $sub_mchid, $total, $openid, $trade_no, $notify_url, $desc); return $this->success("ok", $res); } public function testPartnerPaid() { $trade_no = "1690453703882491"; $sub_mchid = "1626601973"; $res = WechatService::partnerOrderPaid($trade_no, $sub_mchid); return $this->success('ok', $res); } public function addCoupon(Request $request) { try { $link = $request->link; //'receiveCoupons'; $coupon_id = $request->coupon_id; $jump_url = $request->jump_url ?: urlencode(env('APP_URL') . '/pu/#/' . $link . '/' . $coupon_id); $url = env('APP_URL') . '/api/official/live/wechat/FamilyAuth?merchant_id=' . $request->account_id . '&url=' . $jump_url; $qr_code = Redis::get('s_coupons' . $coupon_id); if (!$qr_code) { $qr_code = $this->getPreviewQrcode($url); Redis::setex('s_coupon' . $coupon_id, 60 * 60 * 24 * 30, $qr_code); $qr_code = Redis::get('s_coupon' . $coupon_id); } return $this->success('ok', $qr_code); } catch (\Exception $e) { $this->getError($e); return $this->failure('服务器休息中,请稍后再试'); } } public function testEarningAccount(Request $request) { $accounts = MEarningAccount::where('m_id', $request->m_id); if (is_numeric($request->m_user_id)) { $accounts = $accounts->where('m_user_id', $request->m_user_id); } $accounts = $accounts->get(); foreach ($accounts as $account) { CheckMEarningAccount::dispatch($account)->onQueue('love'); } } public function testRefundService() { $merchant_id = 491; $orders = TouristOrder::whereIn('id', [21025, 20913, 20632])->where('merchant_id', $merchant_id)->get(); foreach ($orders as $order) { DB::beginTransaction(); $refund_trade_no = $this->getRefundTradeNo(); $refund_price = $order->price; //生成退款订单 MRefundOrder::create([ 'm_id' => $merchant_id, 'admin_id' => 58859, 'm_user_id' => $order->account_id, 'type' => $order->type, 'trade_no' => $order->trade_no, 'refund_trade_no' => $refund_trade_no, 'total_fee' => $order->price, 'refund_fee' => $refund_price, 'is_hook' => 0, 'remark' => "未参加活动,已结算,系统全部退款", ]); $m_earning_account = MEarningAccount::where('m_id', $merchant_id)->where('m_user_id', 0)->first(); //删除商家收益 $m_earning_account->decrement('balance', $order->price); $m_earning_account->decrement('total_value', $order->price); MEarning::where('m_id', $merchant_id)->where('m_user_id', 0)->where('m_order_id', $order->id)->delete(); //福恋转账分享用户 $this->transferUser($order, $merchant_id); $order->update(['pay_status' => 3]); //退款 $result = \WechatService::orderRefund($order->trade_no, $refund_trade_no, $order->price, $refund_price, $array = ['refund_desc' => '订单退款']); if (is_array($result) && $result['status'] === true) {//退款成功 DB::commit(); } else { DB::rollBack(); } } } public function transferUser($order, $m_id) { $earnings = MEarning::where("m_id", $m_id)->where("m_user_id", '<>', 0)->where('m_order_id', $order->id)->get(); foreach ($earnings as $earning) { $insert = ['m_id' => $m_id, 'recive_m_user_id' => $earning->m_user_id, 'amount' => $earning->value, 'mobile' => $order->mobile, 'm_earning_id' => $earning->id, 'name' => $order->name, "nickname" => $order->name, 'remark' => "订单退款,分享人收益不变", 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s')]; MerchantTransferLog::insert($insert); } } public function testCreateEval() { $questions = EvaluateQuestion::with("answer")->where('test_item_id', 10007)->get()->toArray(); dd(json_encode($questions, JSON_UNESCAPED_UNICODE)); // $this->createEval(); } public function testMain() { try { $test_key = request()->input('test_key'); if ($test_key != 'l2SjkKTORy5uYhfPVOtvVR51B15dKPZd') { return 'error'; } $action = request()->input('action'); return $this->$action(); } catch (\Exception $e) { echo 'error:' . $e->getMessage(); } } public function addMessageLinkman() { $my_linkman = MessageLinkman::firstOrCreate(['user_id' => 3587, 'other_user_id' => 7622]); $my_linkman->updated_at = date('Y-m-d H:i:s'); $my_linkman->save(); } public function restoreAvatar() { $user_id = request()->input('user_id'); $user = User::find($user_id); if (!$user) { return 'no user'; } $wechat = Wechat::where('user_id', $user_id)->first(); if (!$wechat) { return 'no wechat'; } $avatar = $wechat->avatar2 ?: $wechat->avatar; if (!$avatar) { return 'no avatar'; } $uniqid = uniqid(); $path = storage_path("qrcode/{$uniqid}.png"); file_put_contents($path, file_get_contents($avatar)); $qrcode = $this->uploadFile($path); unlink($path); $user->photo = $qrcode; $user->save(); dd($qrcode); } public function clearIsMarriageApproved() { $user_id = request()->input('user_id'); $user = User::query()->find($user_id); if ($user) { $user->is_marriage_approved = 0; $user->save(); } $profile = ProfileMarriage::query()->where('user_id', $user_id)->first(); if ($profile) { $profile->desc = ''; $profile->certificates = null; $profile->save(); } Audit::query()->where('user_id', $user_id)->where('type', Audit::TYPE_MARRIAGE_APPROVE)->delete(); } public function importActivityMember() { \Excel::import(new MemberSeatImport, storage_path('seats.xlsx')); $members = CommunityActivitySeat::where('activity_id', 2446)->get(); Cache::put('activity:2446:members', $members, now()->addDays(7)); return $this->success('ok'); } public function syncSurveyQrcode(Request $request) { $m_id = $request->input('m_id'); $survey_id = $request->input('survey_id'); MakeSurveyQrcode::dispatch($m_id, null, null, $survey_id)->onQueue('love'); } public function exportActiveUsers() { set_time_limit(0); $start_date = request()->start_date; $end_date = request()->end_date; $type = request()->type; return \Excel::download(new ActiveUserExport($start_date, $end_date, $type), '活跃用户.xlsx'); } public function exportNewUsers() { $rows = []; $users = User::with("profileCourtship")->where("created_at", ">=", request()->start_time)->where("created_at", "<", request()->end_time)->where("type", "single")->where("hidden_profile", "NONE")->get(); foreach ($users as $user) { $profile = $user->ProfileCourtship; $arr = []; $arr['user_id'] = $user->id; $arr["province"] = $profile->province; $arr["city"] = $profile->city; $arr['sex'] = $user->sex; $arr['degree'] = $profile->degree; $arr['industry'] = $user->industry; $arr['industry_sub'] = $user->industry_sub; $arr['state'] = $profile->state; $arr['income'] = $profile->income; $arr['nickname'] = $user->nickname; $arr['name'] = $user->name; $arr['mobile'] = $user->mobile; $arr['belief'] = $profile->belief; $arr['age'] = CommonUtilsService::getAge($profile->birthday); $rows[] = $arr; } return \Excel::download(new NewUserExport($rows), '新用户.xlsx'); } public function sendBirthdayBlessing(): string { $user = User::find(request()->user_id); $nickname = $user->nickName; $mobile = $user->mobile; $code = '生日提醒短信'; //如果今年已经发送过一次短信则不在发送 $this_year_initial_date = date('Y-01-01'); if (empty($mobile)) return false; $result = Message::where('phone', $mobile) ->where('created_at', '>=', $this_year_initial_date) ->where('code', $code) ->count(); if ($result) { return false; } $m = Message::create([ 'phone' => $mobile, 'message' => '', 'confirmed' => 1, 'code' => $code, 'ip' => request() ? request()->ip() : '127.0.0.1', ]); $url = ''; $wecharLink = \CommonUtilsService::getWecharLink('/pages/home/birthdayPresent'); $url = \CommonUtilsService::createShortUrl(env('APP_URL') . '/h5/#/jump_url?url=' . $wecharLink, $m->id); $message = "亲爱的 $nickname 生日快乐! 福恋悄悄给你送了一个神秘的专属礼物哦,点击链接 $url 拆开你的礼物吧!"; $m->message = $message; $m->save(); Messenger::sendSMS($mobile, $message); return $url; } public function checkApproveBirthday() { User::with("profileCourtship")->where("type", "single")->where("is_real_approved", 1)->chunk(100, function ($users) { foreach ($users as $user) { $res = CommonUtilsService::checkCardBirhday($user->card_num); if ($user->profileCourtship) { $birthday = $user->profileCourtship->birthday; } else { $birthday = ""; } if ($res["tdate"] != $birthday && $birthday) { Log::info("bk id=" . $user->id . " " . $res["tdate"] . " " . $birthday); } } }); } // 设置福恋公众号菜单 public function settingOfficialMenu() { $menuJson = '{ "button": [ { "type": "miniprogram", "name": "找对象", "url": "https://love.ufutx.com", "appid": "wxc41491431733671e", "pagepath": "pages/tabBar/welcome?from_platform=FL_88" }, { "name": "想脱单", "sub_button": [ { "type": "view", "name": "综合服务", "url": "https://love.ufutx.cn/api/official/live/wechat/FamilyAuth?merchant_id=491&url=https://love.ufutx.cn/pu/#/" }, { "type": "view", "name": "结婚喜报", "url": "https://love.ufutx.cn/s/74a" }, { "type": "view", "name": "免费发帖", "url": "https://love.ufutx.cn/h5/#/OntheWall?from_platform=FL_88" } ] }, { "name": "关于", "sub_button": [ { "type": "view", "name": "服务收益", "url": "https://love.ufutx.cn/auth/saas/earning/account" }, { "type": "view", "name": "服务管理", "url": "https://love.ufutx.cn/api/official/merchat/auth/login" }, { "type": "view", "name": "服务入驻", "url": "https://love.ufutx.cn/s/74d" }, { "type": "view", "name": "关于本号", "url": "https://mp.weixin.qq.com/s/LJitBk0aShltTZHStPll2g" } ] } ] }'; $token = request()->input("token"); if ($token != "love_setting_official_menu") return $this->failure("秘钥错误"); $access_token = ""; $app = \WechatService::officialApp()->access_token; $token = $app->getToken(true); $access_token = $token['access_token']; if (empty($access_token)) { return $this->failure("缺少access_token"); } $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=" . $access_token; $result = Http::post($url, $menuJson); dd($result); } public function getOfficialMenu() { $token = request()->input("token"); if ($token != "love_get_official_menu") return $this->failure("秘钥错误"); $access_token = ""; $app = \WechatService::officialApp()->access_token; $token = $app->getToken(true); $access_token = $token['access_token']; if (empty($access_token)) { return $this->failure("缺少access_token"); } $url = "https://api.weixin.qq.com/cgi-bin/get_current_selfmenu_info?access_token=" . $access_token; $result = Http::get($url); return $this->success("ok", $result); } }