$setting['service_appid'], 'secret' => $setting['service_appsecret'], 'token' => $setting['service_token'], 'aes_key' => $setting['service_aeskey'], ]; $app = Factory::openPlatform($config); $refreshToken = $app->getAuthorizer($appid)['authorization_info']['authorizer_refresh_token'] ?? null; if (!$refreshToken) { return $this->error('获取refresh_token失败'); } $miniProgram = $app->miniProgram($appid, $refreshToken); $domain = $miniProgram['domain']; $host = env('APP_URL'); $param = [ "action" => "add", "requestdomain" => [$host], "uploaddomain" => [$host], "downloaddomain" => [$host], ]; return [$domain->modify($param), $domain->setWebviewDomain([env('APP_URL')])]; } /** * 模拟登录 * @param $user_id * @return string */ private function login($user_id) { $token_key = md5($user_id . env('APP_KEY')); Cache::put($token_key, $user_id); return $token_key; } public function index2() { $handle = fopen(base_path('area.txt'), 'r'); if ($handle) { DB::statement('TRUNCATE `areas`;'); while (($line = fgets($handle, 4096)) !== false) { $line = trim($line); $last2 = substr($line, 4, 2); //区划码后2位 $front2 = substr($line, 0, 2); //区划码前2位 $front4 = substr($line, 0, 4); //区划码前4位 //判断是否是直辖市,是直辖市则再插入一次上条记录作为二级联动 if (isset($last4, $arr, $parent_arr[$front2]) && $last4 == '0000' && $last2 != '00') { $insert_id = DB::table('areas')->insertGetId(['code' => $arr[0], 'pid' => $parent_arr[$front2], 'name' => $arr[1]]); $parent_arr[$front4] = $insert_id; //对直辖市不做省直辖县处理,如:重庆市 $parent_arr[$front2] = $insert_id; } $last4 = substr($line, 2, 4); //区划码后4位 $arr = preg_split('/\s+/', $line); if (count($arr) !== 2) continue; if ($last4 == '0000') { $insert_id = DB::table('areas')->insertGetId(['code' => $arr[0], 'pid' => 0, 'name' => $arr[1]]); $parent_arr[$front2] = $insert_id; } else if ($last2 == '00') { $insert_id = DB::table('areas')->insertGetId(['code' => $arr[0], 'pid' => $parent_arr[$front2], 'name' => $arr[1]]); $parent_arr[$front4] = $insert_id; } else { //考虑到省直辖县级市情况,如:海南琼海市、湖北仙桃市等,但重庆市的省辖县除外(已在上面判断直辖市逻辑中做处理) $parent_id = $parent_arr[$front4] ?? $parent_arr[$front2]; DB::table('areas')->insertGetId(['code' => $arr[0], 'pid' => $parent_id, 'name' => $arr[1]]); } } } else { return 'open file fail!'; } return 'success'; }}