WeChat 공개 계정을 기반으로 공식 문서 개발:
사용자 정보를 얻는 단계는 다음과 같습니다.
1 1단계: 사용자는 코드 승인 및 획득에 동의합니다
2 2단계: 웹페이지 인증 access_token 코드 교환
3 3단계: access_token 새로 고침(필요한 경우)
4 4단계: 사용자 정보 가져오기(snsapi_userinfo 범위가 필요함)
1 코드 받기
WeChat 공개 계정에 인증 범위(범위 매개변수)의 권한이 있는지 확인하는 전제에서(서비스 계정은 고급 인터페이스에는 기본적으로 범위 매개변수에 snsapi_base 및 snsapi_userinfo가 있습니다.
"링크에 접근할 수 없습니다."라는 메시지가 표시되면 다음을 확인하세요. 매개변수가 잘못 입력되었으며 해당 범위 매개변수가 있는지 여부.
특별 참고 사항: 인증 작업의 높은 보안 수준으로 인해 인증 요청을 시작할 때 WeChat은 다음을 수행합니다. 인증 링크에 대한 정기적인 강력한 일치 확인 링크의 매개변수 순서가 올바르지 않으면 인증 페이지에 정상적으로 액세스할 수 없습니다.
그중
AppID - 공식 계정의 고유 식별자
REDIRECT_URI - 점프 URL
SCOPE - 값은 snsapi_base(팝업 없음 인증 페이지가 직접 점프하고 사용자의 openid만 얻을 수 있음) 또는 snsapi_userinfo(인증 페이지가 팝업되고 openid를 통해 닉네임, 성별, 위치를 얻을 수 있으며, 사용자를 팔로우하지 않더라도 사용자가 승인하면 정보를 얻을 수도 있습니다. )
STATE - 개발자가 매개변수 값을 맞춤 설정할 수 있습니다. a-zA-Z0-9
2 웹페이지 인증 access_token 코드 교환
사용자가 인증에 동의하면 페이지가 이동됩니다.redirect_uri/?code=CODE&state=STATE로 이동 .
state는 그대로 전달된 STATE 매개변수입니다.
구현 코드:
<code class="hljs php">$code = I('get.code'); if (empty($code)) { //todo 非微信访问 exit('</code>'); }else{ //授权后操作 }
여기서 나중에 access_token을 얻을 수 있습니다. 🎜>코드를 얻은 후 다음 링크를 요청하여 access_token을 얻으세요.
appid - 공식 계정의 고유 식별자
secret - 키code - 위 코드에서 반환
grant_type - 값은 Authorization_code
구현 코드:
<code class="hljs bash">$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret'); $str = file_get_contents($url); $str = json_decode($str, true); $access_token = $str['access_token'];</code>
여기에서 access_token은
캐시 처리되어 TP 프레임워크를 가져오기 위한 구현 코드를 자주 획득하는 것을방지할 수 있습니다. 예:
<code class="hljs php">$access_token = S('access_token'); if (empty($access_token)) { $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret'); $str = file_get_contents($url); $str = json_decode($str, true); $access_token = $str['access_token']; S('access_token', $access_token, 3600); }</code>
openid는 사용자가 처음으로 로그인하지 않은 경우 WeChat 사용자를 고유하게 식별합니다. 시간이 지나면 openid를 얻은 후 openid를 얻을 수 있습니다.
데이터베이스를 쿼리하여 이 openid에 바인딩된 사용자가 있는지 확인하면 사용자 데이터를 직접 얻을 필요가 없습니다. user_id 설정 session, 액세스하려면 직접 로그인 3 3단계 무시하고 필요할 때 access_token을 다시 얻으세요
4 사용자 정보 가져오기(범위가 필요함) snsapi_userinfo)
데이터베이스에 이 WeChat ID 사용자 바인딩이 없으면 사용자와 동일합니다. 처음 로그인할 때 사용자 정보를 얻기 위해 네 번째 단계를 거칩니다(사용자 인증의 경우). , 웹 페이지 인증 범위는 snsapi_userinfo이며 개발자는 이때 access_token 및 openid를 통해 사용자 정보를 가져올 수 있습니다. 그런 다음 백그라운드에서 사용자를 생성하고 바인딩합니다. 이 WeChat 계정
정의(openid를 통해)
access_token - 위에서 얻은 access_token
openid - 공개 계정의 고유 식별자<code class="hljs php">$url="https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN"; $str = file_get_contents($url); $str = json_decode($str, true); if (empty($str['errcode'])) { //创建user并绑定 openid}else{ //错误处理}</code>
위 내용은 WeChat 공개 계정에 대한 웹페이지 승인을 얻기 위한 구현 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!