인 스 턴 스 분석 은 PHP 위 챗 웹 페이지 를 기반 으로 사용자 정 보 를 얻 습 니 다.

많은 사용자 들 이 위 챗 웹 페이지 를 개발 할 때 국가,성,시,닉네임 등 사용자 의 기본 정 보 를 얻어 야 합 니 다.우 리 는 다음 에 PHP 언어 기반 을 바탕 으로 어떻게 성공 적 으로 얻 는 지 상세 하 게 분석 해 보 겠 습 니 다.
필요 조건:
1)공중 번호 인증
2)사용자 의 기본 정 보 를 얻 을 수 있 는 웹 페이지 권한 부여 인터페이스
주의:최근 한 친 구 는 공식 플랫폼 에서 신청 한 테스트 번 호 는 사용자 정 보 를 찾 을 수 없다 고 말 했다.인 증 된 공식 계 정 으로 바 꾸 면 정상 입 니 다!
만약 당신 도 이 문제 에 부 딪 히 면 인 증 된 공식 계 정 에서 테스트 해 보 세 요!여러분 의 지지 에 감 사 드 립 니 다!
권한 반환 페이지 의 도 메 인 이름 을 입력 하 십시오.
공용 플랫폼 에 로그 인-->개발 자 센터-->인터페이스 권한 표
웹 페이지 를 찾 아 사용자 의 기본 정 보 를 얻 고 수정 할 수 있 는 권한 을 부여 합 니 다-->도 메 인 이름 을 입력 하 십시오.다음 과 같 습 니 다.

저장 하면 됩 니 다!
웹 페이지 권한 수여 에 관 한 두 가지 scope 의 차이 설명(공식)
1.snsapi 로base 가 scope 에서 시작 한 웹 페이지 권한 수 여 는 페이지 에 들 어간 사용자 의 openid 를 가 져 오 는 데 사용 되 며,침묵 권한 수 여 를 받 고 자동 으로 리 셋 페이지 로 이동 합 니 다.사용자 가 감지 하 는 것 은 바로 리 셋 페이지 에 들 어 가 는 것 이다(흔히 업무 페이지).
2,snsapiuserinfo 가 scope 에서 시작 한 웹 페이지 권한 수 여 는 사용자 의 기본 정 보 를 얻 는 데 사 용 됩 니 다.그러나 이러한 권한 수 여 는 사용자 가 수 동 으로 동의 해 야 하고 사용자 가 동의 한 적 이 있 기 때문에 주목 하지 않 아 도 권한 수 여 를 받 은 후에 이 사용자 의 기본 정 보 를 얻 을 수 있다.
3.사용자 관리 류 인터페이스 에 있 는'사용자 기본 정보 획득 인터페이스'는 사용자 와 공중 번호 가 메시지 상호작용 을 하거나 관심 을 가 진 후에 사건 을 푸 시 한 후에 야 사용자 OpenID 에 따라 사용자 의 기본 정 보 를 얻 을 수 있다.이 인 터 페 이 스 는 다른 위 챗 인 터 페 이 스 를 포함 하여 모두 이 사용자(즉 openid)가 공중 번 호 를 주목 해 야 호출 에 성공 할 수 있 습 니 다.
scope 는 두 가지 모드 가 있 기 때문에 아래 에 나 누 어 설명 합 니 다.
scope 는 snsapibase 그러면 사용 자 는 공중 번호 에 관심 을 가 져 야 정 보 를 얻 을 수 있 습 니 다.
먼저 두 개의 파일 을 만 듭 니 다:index.php 와 getUserInfo.php
코드 인 스 턴 스
index.php 는 다음 과 같 습 니 다.

//scope=snsapi_base   
$appid='  AppId';
$redirect_uri = urlencode ( 'http://    /getUserInfo.php' );
$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_base&state=1#wechat_redirect";
header("Location:".$url);
getUserInfo.php 는 다음 과 같 습 니 다.

$appid = "  AppId";
$secret = "  AppSecret";
$code = $_GET["code"];
//   :   access_token
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret";
$token = getJson($url);
//   :  openid
$oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
$oauth2 = getJson($oauth2Url);
 
//   :    access_token openid      
$access_token = $token["access_token"];
$openid = $oauth2['openid'];
$get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN";
$userinfo = getJson($get_user_info_url);
//      
print_r($userinfo);
function getJson($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return json_decode($output, true);
}
scope 는 snsapiuserinfo 사용 자 는 공중 번호 에 관심 을 가지 지 않 아 도 정 보 를 얻 을 수 있 지만,사용자 가 클릭 하여 확인 할 수 있 는 인터페이스 가 있 습 니 다!로그 인 권한 수여 에 해당 합 니 다!
코드 인 스 턴 스
index.php 는 다음 과 같 습 니 다.

//scope=snsapi_userinfo  
$appid='  AppId';
$redirect_uri = urlencode ( 'http://    /getUserInfo.php' );
$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";
header("Location:".$url);
getUserInfo.php 는 다음 과 같 습 니 다.

$appid = "  AppId";
$secret = "  AppSecret";
$code = $_GET["code"];
//   :  openid
$oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
$oauth2 = getJson($oauth2Url);
//   :    access_token openid      
$access_token = $oauth2["access_token"];
$openid = $oauth2['openid'];
$get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN";
$userinfo = getJson($get_user_info_url);
//      
print_r($userinfo);
function getJson($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return json_decode($output, true);
}
테스트 단계:
index.php 와 getUserInfo.php 두 파일 을 만 든 후
먼저 테스트:scope 는 snsapibase
1)우선 공식 계 정 에 주목
2)인터넷 주소:http://도 메 인 이름/index.php 를 QR 코드 로 만 듭 니 다!
3)위 챗 으로 쓸 어 본다
재 테스트:scope 는 snsapiuserinfo
1)교체 코드
2)현재 공중 번호 에 관심 을 취소 합 니 다.
3)그리고 위 챗 으로 스 캔 하 세 요.방금 생 성 된 QR 코드 입 니 다.

좋은 웹페이지 즐겨찾기