input('code'); if (empty($code)){ return $this->apiResponseError('缺少必要信息'); } $openInfo = WeixinServer::creatServer()->getAppletsOpenId($code); if(!isset($openInfo['openid'])){ return $this->apiResponseError(empty($openInfo['msg'])?'openid获取失败':$openInfo['msg']); } DB::beginTransaction(); try { //检查openid是否存在 $m_id = MemberOpenServer::creatServer()->getUserId(4,$openInfo['openid']); if($m_id){ //重置token $token_str = PassServer::creatServer()->getMemberToken($m_id); Member::where('id', $m_id)->update(['token_str' => $token_str]); $member = ['m_id' => $m_id, 'token' => $token_str]; }else{ $member=MemberServer::creatServer()->register(); if (empty($member)){ DB::rollBack(); return $this->apiResponseError('注册失败'); } $memberOpen=MemberOpenServer::creatServer()->setUserOpenid($member['m_id'],4,$openInfo['openid']); if(empty($memberOpen)){ DB::rollBack(); return $this->apiResponseError('注册失败'); } } //清除会员缓存 MemberServer::creatServer()->delMemberCache($member['m_id']); DB::commit(); return $this->apiResponseSuccess('成功',$member); }catch (\Exception $e){ DB::rollBack(); return $this->apiResponseError('注册失败'); } } }