1、关于微信公众号获取用户openid
public function getOpenid(Request $request) { try { $code = $request->request->get('code', ''); if (empty($code)) return response_json(11002, config('code.11002')); list($res, $data) = $this->getWXOpenId($code); //获取openid if (!$res) return response_json(11066, config('code.11066')); $openidU = PageIdentifier::where(['pi_mark'=>$data['openid'],'pi_source'=>1])->first(); if (!empty($openidU)) { $userbase = \App\Models\Userbase::where('ub_id', $openidU->ub_id)->first(); $login = new ThumbUp(); $logins = $login->LoginSmall($userbase->ub_cellphone); return $logins; } else { return response_json(200, 'success', $data['openid']); } } catch (\Exception $exception) { Log::info('异常', [$exception]); return response_json(11066, config('code.11066')); } }
public function getWXOpenId($code) { $res = $this->wechat->getOauthAccessTokenActivity($code); //有此去请求微信对应的方法 if (!empty($res['errcode'])) { Log::info('wx_getopen_error', [$res]); return [false, '']; } if (empty($res['access_token']) || empty($res['openid'])) { Log::info('wx_getopen_loss', [$res]); return [false, '']; } return [true, $res]; }
/** * 通过code获取Access Token 营销活动 * @return array {access_token,expires_in,refresh_token,openid,scope} */ public function getOauthAccessTokenActivity($code){
//=>self::OAUTH_TOKEN_URL /sns/oauth2/access_token
$result = $this->http_get(self::API_BASE_URL_PREFIX.self::OAUTH_TOKEN_URL.'appid='.$this->appid.'&secret='.$this->appsecret.'&code='.$code.'&grant_type=authorization_code'); return json_decode($result, true); }
2、关于小程序获取微信手机号
参考此篇https://blog.csdn.net/qq_35713752/article/details/90233879