마이크로 채널 대중 번호가 로그에 (시험 번호)

1.https : //mp.weixin.qq.com/advanced/advanced 행동 = dev에 & t = 고급는 / dev 및 토큰 = 614565808 & LANG = zh_CN으로

기본 설정 토큰 검증 

정의 ( "TOKEN", "fmyinpin123456을" );
        $ echoStr = $ _GET [ "echostr" ];
        // 유효한 서명, 옵션 
        의 경우 (WechatCallbackApiTest :: checkSignature ()) {
             에코  $ echoStr ;
            출구 ; 
        }

 <? PHP는
 / * * 
 의 FM 만든 *. 
 * 사용자 : 아빈 
 * 날짜 : 2019년 1월 21일 
 * 시간 15:00 
 * / 

네임 스페이스 응용 프로그램 \ API를 \ libs와; 


클래스 WechatCallbackApiTest 
{ 

    공공  기능 responseMsg () 
    { 
        //서로 다른 환경 때문일 수 있습니다, 포스트 데이터를 얻을 
        $ postStr = $ GLOBALS [ "HTTP_RAW_POST_DATA" ]; 

        // 추출 후 데이터 
        의 경우 (!  ( $ postStr {)) 

            $ postObj = simplexml_load_string ( $ postStr , 'SimpleXMLElement', LIBXML_NOCDATA);
            $ fromUsername = $ postObj -> FromUserName;
            $ toUsername = $ postObj -> ToUserName;
            $ 키워드 = 트림 ( $ postObj를 ->함유량);
            $ 시간 = 시간 ();
            $ textTpl = " <XML> 
                            <ToUserName> <! [CDATA [% S]]> </ ToUserName> 
                            <FromUserName> <! [CDATA [% S]]> </ FromUserName> 
                            <CreateTime 더> % S </ CreateTime 더> 
                            <! [CDATA [% S]> <을 MsgType> </을 MsgType> 
                            <! [CDATA [% S]> <콘텐츠> </ 콘텐츠> 
                            <FuncFlag> 0 </ FuncFlag> 
                            </ XML> " ;
            만약 (!
                = "텍스트" ;
                $ contentStr = "세계를 위챗에 오신 것을 환영합니다!" ;
                $ resultStr = sprintf와 ( $ textTpl , $ fromUsername , $ toUsername , $ 시간 , $ MSGTYPE , $ contentStr );
                에코  $ resultStr ; 
            } 다른 {
                 에코 "입력 무언가를 ..." ; 
            } 

        } 다른 {
             에코 "" ;
            종료  ;
        }
    } 

    공용  정적  함수 checkSignature () 
    { 
        $ 서명 = $ _GET [ "서명" ];
        $ 소인 = $ _GET [ "타임 스탬프" ];
        $ 논스 = $ _GET [ "난스" ]; 

        $ 토큰 = TOKEN;
        $ tmpArr = 배열 ( $ 토큰 , $ 소인 , $ 넌스 );
        종류 ( $ tmpArr );
        $ tmpStr = 내파 ( $ tmpArr);
        $ tmpStr = SHA1 ( $ tmpStr ); 

        경우 ( $ tmpStr == $ 서명 ) {
             반환  사실 ; 
        } 다른 {
             반환  거짓 ; 
        } 
    } 
}

2.https : //mp.weixin.qq.com/cgi-bin/settingpage = t / 설정 기능 및 행동 함수 및 토큰 = = 614,565,808 및 LANG = zh_CN으로

콜백 설정 페이지 권위있는 이름

3.https : //mp.weixin.qq.com/cgi-bin/frame t = 고급 / dev_tools_frame 및 탐색 = 10049 & 토큰 = 614565808 & LANG = zh_CN으로

공공 플랫폼 테스트 번호는 위의 설정

인터페이스 구성 / 수정

JS 인터페이스 보안 도메인 / 수정

웹 페이지에 사용자에 대한 정보를 얻을 수있는 권한 / 수정

  공공  기능 지수 () {
         $ APPID = $이 -> APPID;
        $ redirect_uri로 = 를 urlencode ( $이 -> redirect_uri로);
        $ URL = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=". $의 APPID . "& redirect_uri로 =". $의 redirect_uri에 "& RESPONSE_TYPE = 코드 및 범위 = snsapi_userinfo 및 상태 STATE = # 1 wechat_redirect." ;
        헤더 (. "위치 :" $ URL );
        출구 ; 
    } 

    공공  기능 http_curl ( $ URL이 ,RES $ = 'JSON', $ ARR = '' ) 
    { 
        // 1. 초기화 곱슬 
        $의 CH = curl_init ();
         // 2. 컬의 파라미터를 설정 
        curl_setopt ( $의 CH 에 CURLOPT_URL, $의 URL ) 
        curl_setopt을 ( $ CH , CURLOPT_SSL_VERIFYPEER는 거짓에 ); // 인증서 확인하지 
        curl_setopt ( $ CH , CURLOPT_SSL_VERIFYHOST, false로를 ); //이 인증서 확인하지 
        (curl_setopt을 $의 CH , CURLOPT_RETURNTRANSFER ,. 1 )
         IF ( $ 유형을 == 'POST'를) { 
            curl_setopt ( $의 CH , CURLOPT_POST, 1 ); 
            curl_setopt ( $ ch를 , CURLOPT_POSTFIELDS, $의 편곡 ); 
        } 
        // 3采集의 
        $ 출력 = curl_exec ( $의 CH );
        // 4.关闭 
        curl_close ( $ ch를 );
        경우 ( $ 입술 == 'JSON' ) {
             복귀 json_decode ( $ 출력 , ); 
        } 
    } 

    //
     공공  기능 getUserOpentId () {
         //콜백 주소가 우리가 오픈 ID 및 권한 부여가 코드에 따라 access_token은 인수 가서, 코드를 반환 
        $ 코드 = $ _GET [ '코드' ];
         $ AppID에 = $은이 -> 의 AppID;
         $ 비밀 = $은이 -> appsecret;
         URL의 $ = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=." $ AppID가 . "= 비밀." $ 비밀 . "& 코드 =." $ 코드 . "& grant_type = authorization_code" ;
         $ RES = $은이 -> http_curl ( $의 URL );
         $ access_token과 = $ RES [ 'access_token과'];
        $ getopenid = $ 입술 [ '오픈 아이디' ];
        // 获取用户授权信息
        $ urltoc = "https://api.weixin.qq.com/sns/userinfo?access_token=". $ access_token이 . "& 오픈 ID =". $의 getopenid "& LANG = zh_CN으로." ;
        $ resinfos = $이 -> http_curl ( $의 urltoc );
        인 print_r ( $ 고해상도 );
        인 print_r ( $ resinfos );
        다이 ;
        $ 오픈 ID = $ resinfos [ '오픈 아이디' ];
        $의 check_member = DB :: 이름 ( "회원") ->오픈 ID $ ) -> 찾기 ();
         IF (  ( $의 check_member가 )) {
             //이 처음 입력 한 사용자 정보가 데이터베이스로, 획득 
            $ resInfo [ '오픈 ID'] = $ 오픈 ID ;
             $ insert_data = [
                 '오픈 ID'=> 오픈 ID $ , 
                '이 CREATE_TIME'=> 시간 () 
            ] 
            DB :: 이름 ( "회원") -> INSERT ( $의 insert_data );
             $ 사용자 ID = DB :: 이름 ( '회원') -> getLastInsID (); 
            세션 : : 설정 ( 'wx_member_info'$의 resinfo);
             $는이 -> 리디렉션은 ( '홈 / 색인 /를 index_html은' ); 
        } 다른 {
             // 참고 이미 대중 번호의 구성원 인 사용자로 세션에 저장된 정보를 호출 
            wx_member_info $ = :: DB 이름 ( '회원' ) -> WHERE ( "오픈 ID", $ 오픈 ID ) -> () 찾기, 
            세션 : SET ( 'wx_member_info', $의 wx_member_info );
             $를이 -> 리디렉션 ( '홈 / 색인 /를 index_html' ); 
        } 
    }

 

추천

출처www.cnblogs.com/wxtrip/p/10973979.html