TP5 마이크로 채널 승인


$ APPID = '****************'보호; //微信APPID
보호 $ appsecrt = '******************'; //微信appsecrt


// ----------- 자동 인증 (인증 확인을 위해 사용자를 사용하는 사용자의 닉네임과 아바타를 얻기 위해, 아바타, 사용자의 별명을 얻을 수 없다)
공공 기능 getBaseInfo ()
{
// 얻을 코드
$ redirect_uri로 =를 urlencode ( "HTTP : //www.******.com/index/index/getWxCode"); // 콜백 주소
$의 URL = "https://open.weixin.qq.com/connect/oauth2/authorize APPID =? "이 $는 this->. RESPONSE_TYPE = 코드 및 범위 = snsapi_base 및 상태 = 123 # wechat_redirect"& redirect_uri로는 = $ & redirect_uri로 APPID은. "// 상태를 임의로 할 수
    $ this-> 리다이렉트 ($ URL, 302); // TP5的重定向方法  
}

공개 getWxCode 함수 ()
{
//获取access_token이
//获取오픈 아이디
$ 코드 = $ _GET [ '코드'];
$ URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=
". this-> APPID $. " & 비밀 = ". this-> appsecrt $. "& 코드는 $ 코드 = & grant_type = authorization_code";
    $ R = http_curl의 ($ URL); 
$ 오픈 ID = $ R [ '오픈 아이디'];
$ access_token은 R = $ [ 'access_token이'];
위해서 var_dump ( 'access_token은是:'$ access_token은 '=========' '오픈 ID是'.... $ 오픈 ID);
}


// ------------------------------- 끝 --------------- --------------------


// -----------用户确认授权           
공공 기능 getCodeUserInfo ($ 온도)
{
//获取코드
$ redirect_uri로 =를 urlencode ( "http://zs.zs13ce.gx.cn/index/index/ getWxUserInfo "); //回调地址
$ URL ="https://open.weixin.qq.com/connect/oauth2/authorize?appid= ". this-> APPID $. " &를 redirect_uri = $ & redirect_uri로 RESPONSE_TYPE = 코드 및 범위는 = snsapi_userinfo 및 상태 = $ 온도 및 connect_redirect = 1 # wechat_redirect"; // 상태可任意
    $ this-> 리다이렉트 ($ URL, 302); // TP5의 리디렉션 방법  
}


공공 기능 getWxUserInfo () 
{
//换取网页授权access_token은
//获取오픈 ID
$ 코드 = $ this-> 요청 -> PARAM ( '코드');
$ 상태 = $ this-> 요청 -> PARAM ( '주');
$ URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=". this-> APPID $. "& 비밀 =". this-> appsecrt $. "& 코드 =". $ 코드입니다. "& grant_type = authorization_code";
$ rjson = http_curl의 ($ URL);
$ access_token이 = $ rjson [ 'access_token이']; //得到access_token은 (网页的)
$ 오픈 ID = $ rjson [ '오픈 아이디']; //得到오픈 아이디
$ userInfoUrl = "https://api.weixin.qq.com/ SNS / 사용자 정보? access_token은 = $ access_token은 & 오픈 ID = ". $ this->
        = http_curl $ ($ userInfoUrl) 결과; 
// 위해서 var_dump ($ 결과); // 인쇄 사용자 정보
// 죽을;
IF (빈 ($ 결과)) {
0 반향을, 다이;
}
$ 사용자 이름 :: = DB를 ( "사용자") -> ( "오픈 ID", $ 결과 [ "오픈 ID가"]) -> (찾기),
IF (빈 ($ 사용자) {)
에는 테이블이없는 경우 //가 삽입
}
-> _ 사용은이를 $ 사용자 $ =;
$ this-> setIsSq ($ 사용);
$ this-> 리디렉션 (URL ($ 주), (302)); // 리디렉션 방법 TP5 
}




http_curl 함수 ($ URL, 데이터 = $ []) 
{
$ 컬 = curl_init (); // 초기화
curl_setopt ($ 컬 CURLOPT_URL, $ URL); // 설정된 URL 크롤링
(false로 $ 컬 CURLOPT_SSL_VERIFYPEER) curl_setopt // HTTPS 인증서와 호스트 확인하지 않는 요청
(false로 $ 컬 CURLOPT_SSL_VERIFYHOST) curl_setopt;
curl_setopt ($ 컬 CURLOPT_HEADER, 0); // 헤더 정보가 1로 설정되어 데이터 스트림으로 출력한다 설정 HTTP 효율성 가속화 할 수있는 HTTP 헤더 정보를 인쇄하지 마십시오
curl_setopt ($ 컬, CURLOPT_RETURNTRANSFER, 1 ); // 설정 획득 한 정보 대신에 출력되는의, 파일 스트림의 형태로 반환됩니다. 설정이 0 인 경우, 인쇄 정보는 사실이다
curl_setopt (true로 $ 컬, CURLOPT_POSTFIELDS,로 json_encode ($ 데이터));
$ 데이터 = curl_exec ($ 컬); // 실행
$ = json_decode (true로 $ 데이터)의 결과;
IF (데이터 == false로 $) {
에코 "컬 오류"curl_error ($ 컬);
출구 ();
}
Curl_close ($ 컬); // 닫기 URL 요청
반환 $ 결과;
}

추천

출처www.cnblogs.com/j-jian/p/11908997.html