error('授权失败,参数有误'); if ($code && !$session_key) { try { $userInfoCong = MiniProgramService::getUserInfo($this->cid,$code); $session_key = $userInfoCong['session_key']; $cache_key = md5(time() . $code); cache('post_cache_key', $session_key, 86400); } catch (\Exception $e) { $this->error('',['message' => $e->getMessage(), 'line' => $e->getLine()]); } } $data = UtilService::postMore([ ['spread_spid', 0], ['spread_code', ''], ['iv', ''], ['encryptedData', ''], ]);//获取前台传的code try { //解密获取用户信息 $userInfo = MiniProgramService::encryptor($session_key, $data['iv'], $data['encryptedData']); } catch (\Exception $e) { if ($e->getCode() == '-41003') $this->error('获取会话密匙失败'); } if (!isset($userInfoCong['openid'])) $this->error('openid获取失败'); if (!isset($userInfo['unionId'])) $userInfo['unionId'] = ''; $userInfo['openId'] = $userInfoCong['openid']; $userInfo['spid'] = $data['spread_spid']; $userInfo['code'] = $data['spread_code']; $userInfo['session_key'] = $session_key; $userInfo['login_type'] = $login_type; $user = User::where('id', UserRelation::openidToUid($userInfo['openId'], 'routine_openid'))->find(); if (!$user) $this->error('获取用户失败'); $this->auth->direct($user['id']); return $this->success('登录成功', $this->auth->getUserinfo()); } /** * 小程序支付回调 */ public function notify() { MiniProgramService::handleNotify(); } /** * 获取小程序订阅消息id * @return mixed */ public function teml_ids() { $temlIdsName = SubscribeTemplateService::getConstants(); $temlIdsList = CacheService::get('TEML_IDS_LIST', function () use ($temlIdsName) { $temlId = []; foreach ($temlIdsName as $key => $item) { $temlId[strtolower($key)] = SubscribeTemplateService::setTemplateId($item); } return $temlId; }); return app('json')->success($temlIdsList); } }