PHP 는 사이트 응용 위 챗 로그 인 기능 에 대한 상세 한 설명 을 실현 합 니 다.

8593 단어 PHP위 챗 로그 인
본 고 는 PHP 가 사이트 응용 위 챗 로그 인 기능 을 실현 하 는 것 을 실례 로 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
배경
  • 최근 에 PC 측의 사이트 개발 을 진행 하려 면 위 챗 권한 수여 로 로그 인 해 야 한다.초기 에 핸드폰 단말기 에서 대량의 위 챗 사용자 군 을 얻 었 음 을 감안 하여 지금 은 자원 통합 을 해서 같은 위 챗 사용자 의 데이터 동기 화
  • 을 만족 시 키 려 고 한다.
    1.개발 주의사항
    1.개념 구분
  • 위 챗 개발 지식 을 접 했 기 때문에 OpenIDUnionID 의 사용 을 접 하 게 될 것 입 니 다.다음은 위 챗 공식 문서 의 소개 입 니 다.구분 에 주의 하 십시오.
  • 관심 자 와 공중 번호 가 정 보 를 교환 한 후에 공중 번 호 는 관심 자의 OpenID(암호 화 된 마이크로 신 호 를 얻 을 수 있 고 모든 사용자 가 각 공중 번호 의 OpenID 에 대해 유일한 것 이다.공중 번호 에 따라 같은 사용자 의 OpenID 이 다르다.
  • 공중 번 호 는 해당 인 터 페 이 스 를 통 해 OpenID 에 따라 사용자 의 기본 정 보 를 얻 을 수 있 는데 닉네임,이미지,성별,소재 도시,언어 와 관심 시간 을 포함한다.
  • 개발 자가 여러 개의 공중 번호 가 있 거나 공중 번호,모 바 일 애플 리 케 이 션 간 에 사용자 계 정 을 통일 하 는 수요 가 있 으 면 위 챗 오픈 플랫폼(open.weixin.qq.com)에 가서 공중 번 호 를 연결 해 야 UnionID 체 제 를 이용 하여 상기 수 요 를 만족 시 킬 수 있 습 니 다.
  • 간단하게 요약 하면
  • OpenID 은 일반 사용자 의 표지 로 현재 개발 자 계 정 에 유일 합 니 다.하나의 OpenID 은 공중 번호 에 대응한다.
  • UnionID 은 사용자 의 통 일 된 표지 이다.하나의 위 챗 오픈 플랫폼 계 정 에 대한 응용 은 같은 사용자 의 UnionID 이 유일 하 다.
  • 2.귀납 적 정리
  • 이 원 을 돌 았 다.즉,위 챗 공중 호 개발 과 위 챗 개발 플랫폼 개발 은 차이 가 있 는
  • 이다.
  • 같은 위 챗 사용자 가 서로 다른 플랫폼(예 를 들 어 PC 엔 드,app,위 챗 애플 릿 등)의 사 이 트 를 이용 하여 로그 인 하려 면 계 정 바 인 딩 이 필요 하 며,이 바 인 딩 된 계 정 은 OpenID 으로 구분 할 수 없고 UnionID 으로 구분 해 야 한다.
  • 3.전형 적 인 문제
  • 부록 에서 흔히 볼 수 있 는 디자인 문 제 는 주로 개발 전의 지식 사용 이 전면적 이지 않 아서 후속 적 인 확대 에 영향 을 미 치 는 데 있 습 니 다.물론 이것 도 제 가 직면 한 문제 입 니 다.여러분 께 경종 을 울 려 드 리 고 싶 습 니 다.

  • 따라서 이러한 상황 이 발생 하면 아래 의 지 도 를 참고 하여 unionID 데 이 터 를 얻 은 후기 에 사용자 기본 정보 가 져 오기(UnionID 메커니즘) 을 얻 을 수 있 습 니 다.
  • 개인 참고 코드 는 다음 과 같다.
  • 
      /**
       *          openID        (    unionID)
       */
      public function getUnionidByOpenid($openID = ''){
        $url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token="
          .$this->getaccesstoken()
          ."&openid=".$openID."&lang=zh_CN";
        $jsonRes = $this->http_get($url);
        if ($jsonRes){
          $arrRes = json_decode($jsonRes, true);
          return $arrRes['unionid'];
        }else{
          return '';
        }
      }
    2.위 챗 오픈 플랫폼 조작
  • 로그 인 위 챗 오픈 플랫폼
  • 1.간단 한 안내

  • 아래 의 수요 에 따라'사이트 응용 개발'의 설립 을 선택 한 다음 에 공식 적 인 안내 에 따라 자 료 를 신청 하 는데 보통 3 일 이상 걸린다.
    选择“网站应用开发”
  • 의 간략 한 기능 소개


  • 응용 프로그램 생 성 이 통 과 된 후에 인터페이스 권한 의 획득 을 만족 시 켜 야 합 니 다.직원 들 이 자발적으로 연락 을 하면 보통 하루 에 완성 할 수 있 습 니 다.
    获取微信登录权限
  • 2.정부 에서 제공 하 는 장면 참고
    场景参考
    3.공식 계 정/애플 릿 연결
    같은 개발 계 정 에서 위 챗 사용자 의 유 니 온 ID 바 인 딩 사용 을 확보 하기 위해 서 는 아래 목록 에 해당 하 는 공중 번호/서비스 번 호 를 바 인 딩 해 야 합 니 다.문서 에 소 개 된 것 은 보통 위 챗 결제 기능 을 만족 시 켜 야 합 니 다.
    绑定公众账号/小程序
    4.access_token 시차 도 획득 권한 부여
    获取access_token时序图
    3.코드 구현
  • 사실은 주요 한 시간 은 모두 전기 신청 작업 에 걸 렸 고 진정한 코드 실현 은 매우 간단 합 니 다.다음은 제 실현 방식 입 니 다.
  • 을 지적 해 주 십시오.
    1.공공 파일 설정
  • 습관 주요 설정 정 보 는 설정 파일 에 두 는 것 에 동의 합 니 다.'\application\Common\Conf\config.php'.
  • 
    'WEIXIN_LOGIN' => array(
        //                App         
        'OPEN_APPID' => 'wxbd961b2a6b7b2963', //   AppID
        'OPEN_APPSECRET' => 'e6xxxxxxxxxxxxxxxxxxxxe90',//   AppSecret
        'OPEN_CALLBACKURL' => 'http://www.52zhenmi.com/Home/Login/wxBack', //                    ,PC     
      ),
    2.핵심 코드
  • 구체 적 인 코드,경로"zmPro\응용 프로그램\홈\\컨트롤 러\로그 인 컨트롤 러.class.php"
  • 참조
    
    public function wxIndex(){
        //--    -----        CSRF  
        $state = md5(uniqid(rand(), TRUE));
        $_SESSION["wx_state"]  =  $state; //  SESSION
        $callback = urlencode($this->callBackUrl);
        'https://https://blog.csdn.net/u011415782/article/details/open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect';
        $wxurl = "https://https://blog.csdn.net/u011415782/article/details/open.weixin.qq.com/connect/qrconnect?appid="
            .$this->appID."&redirect_uri="
            .$callback."&response_type=code&scope=snsapi_login&state="
            .$state."#wechat_redirect";
        header("Location: $wxurl");
      }
    
      public function wxBack(){
        if($_GET['state']!=$_SESSION["wx_state"]){
          echo 'sorry,      ...';
          exit("5001");
        }
        $url='https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->appID.'&secret='.$this->appSecret.'&code='.$_GET['code'].'&grant_type=authorization_code';
        $arr = curl_get_contents($url);
        //   access_token   openid
        $url='https://api.weixin.qq.com/sns/userinfo?access_token='.$arr['access_token'].'&openid='.$arr['openid'].'&lang=zh_CN';
        $user_info = curl_get_contents($url);
        $this->dealWithWxLogin($user_info);
      }
    
      /**
       *                     
       * @param $user_info
       */
      public function dealWithWxLogin($user_info){
        //TODO     
        var_dump($user_info);
        die;
      }
    3.전면 디 스 플레이
  • 공식 문서 의 소개 에 따라 권한 수여 스 캔 인터페이스 에 직접 방문 할 수도 있 고 사용자 정의 디자인
  • 도 할 수 있다.
  • 본인 의 뇌 추출 을 예측 하고 로그 인 코드 를 끼 워 넣 는 기능 이 반나절 동안 실현 되 지 않 았 기 때문에 여기 서 기본 점프 를 사용 할 수 밖 에 없습니다.
  • 前端入口

  • 위의 그림 에 있 는 위 챗 아이콘 을 클릭 하여 아래 링크 로 바로 이동 합 니 다.
    https://https://blog.csdn.net/u011415782/article/details/open.weixin.qq.com/connect/qrconnect?appid=wxbd961b2a6b7b2963&redirect_uri=http%3A%2F%2Fwww.52zhenmi.com%2FHome%2FLogin%2FwxBack&response_type=code&scope=snsapi_login&state=204b244a5051207d1987a95f4a7e42c1#wechat_redirect

  • 다음 과 같은 효과 보이 기:
  • 默认微信登录效果
  • 스 캔 로그 인 성공 후 페이지 이동
    测试结果如图
  • 총화
  • 애플 리 케 이 션 은 공식 적 으로 UnionID 메커니즘 설명 을 제공 하 였 으 며,비교 참고 할 수 있 습 니 다

  • 인터넷 에서 좋 은 글 을 보 았 습 니 다.참고 하 시기 바 랍 니 다.위 챗 공식 번호 사용자 와 사이트 사용자 의 바 인 딩 방안

  • 요약:
  • 1.상기 기능 에 따라 마지막 으로 로그 인 사용자 의 정 보 를 얻 을 수 있 고 그 중에서 openIDUnionID 은 데이터 베 이 스 를 저장 하여 후기 업 무 를 처리 할 수 있 습 니 다.
  • 2.아래 에서 논술 능력 에 한계 가 있 으 므 로 공식 개발 문서,구 글 선배 의 건어물 경험 을 참고 하 는 것 을 권장 합 니 다.
  • 부록
  • 소스 코드 참조
  • 더 많은 PHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
    본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

    좋은 웹페이지 즐겨찾기