diff --git a/app/Http/Controllers/Api/UserController.php b/app/Http/Controllers/Api/UserController.php index 0d2251a..a3e6ee5 100644 --- a/app/Http/Controllers/Api/UserController.php +++ b/app/Http/Controllers/Api/UserController.php @@ -2,6 +2,7 @@ namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; +use App\Models\AdminSetting; use App\Models\Agent; use App\Models\User; use EasyWeChat\Factory; @@ -36,18 +37,30 @@ class UserController extends Controller ]); $agent = Agent::query()->find($this->agent_id); //代理商数据 - $config = config('wechat.mini_program.default'); - $config = array_merge($config, [ - 'app_id' => $agent->appid, - 'secret' => $agent->appsecret, - ]); $session = Cache::get('session_key_' . $this->user_id); if (!$session) { return $this->error('无效的session,请重新登录'); } - $app = Factory::miniProgram($config); + // 如果有appsecret,使用原来的逻辑,否则使用第三方平台逻辑 + if ($agent['appsecret']) { + $config = config('wechat.mini_program.default'); + $config = array_merge($config, [ + 'app_id' => $agent->appid, + 'secret' => $agent->appsecret, + ]); + $app = Factory::miniProgram($config); + } else { + $setting = AdminSetting::val(['service_appid', 'service_appsecret', 'service_token', 'service_aeskey']); + $config = [ + 'app_id' => $setting['service_appid'], + 'secret' => $setting['service_appsecret'], + 'token' => $setting['service_token'], + 'aes_key' => $setting['service_aeskey'], + ]; + $app = Factory::miniProgram($config); + } try { $decryptedData = $app->encryptor->decryptData($session, $formData['iv'], $formData['encryptedData']); $user = User::find($this->user_id);