위 챗 공식 번호 메뉴 를 클릭 하면 위 챗 을 열 고 로그 인 할 수 있 습 니 다.

본 고의 실례 는 위 챗 공중 번호 가 메뉴 를 클릭 하면 위 챗 에 열 리 고 로그 인 하 는 실현 방법 을 설명 한다.모두 에 게 참고 하도록 공유 하 다.구체 적 인 분석 은 다음 과 같다.
전체적으로 보면 위 챗 공식 번호 가 메뉴 를 클릭 하면 위 챗 에 접속 하여 실현 하 는 절차 가 비교적 복잡 하지만 많은 위 챗 이 이미 사용 하고 있 습 니 다.본 고 는 이에 대해 정리 하고 요약 하면 여러분 에 게 어느 정도 참고 가 치 를 가 져 다 줄 수 있 을 것 이 라 고 믿 습 니 다.
현재 대부분의 마이크로 스테이션 은 사용자 의 위 챗 openid 를 통 해 자동 로그 인 을 실현 합 니 다.이전 개발 에서 사용 자 는 메뉴 를 클릭 하고 대중 번 호 를 통 해 그림 을 되 돌려 주 었 습 니 다.사용 자 는 이 그림 을 클릭 해 야 마이크로 사이트 에 자동 으로 로그 인 할 수 있 습 니 다.그러나 고급 인 터 페 이 스 를 가지 고 있다 면 메뉴 를 클릭 하고 웹 페이지 를 열 면 이 openid 를 가 져 와 자동 로그 인 을 할 수 있 습 니 다.
고급 인터페이스의 권한(서비스 번호,기업 번호)을 가 져 야 하 며 개발 자 모드 를 켜 야 한다 고 언급 되 었 습 니 다.
1.리 셋 주소 설정
위 챗 공식 플랫폼 백 스테이지'개발 자 센터'에서'고급 인터페이스'아래'OAuth 2.0 웹 페이지 인증'을 찾 으 면'수정'이 있 고 클릭 하면 리 셋 주 소 를 입력 하 는 대화 상자 가 팝 업 됩 니 다.구체 적 으로 어떻게 권한 을 부여 하 는 지 여 기 를 클릭 하여 공부 하 세 요.고급 인터페이스 권한 을 얻 은 후에 야 이곳 의'수정'이 나타 날 수 있 습 니 다.
여기 서 작성 한 것 은 도 메 인 이름 입 니 다.인터넷 주소 가 아 닙 니 다.그리고 설명 에서 잘 알 고 있 습 니 다."도 메 인 이름 설정 을 전체 도 메 인 이름 으로 바 꾸 는 권한 을 부여 합 니 다."즉,ww 를 가 져 오 는 것 과 가 져 오지 않 는 것 은 서로 다른 두 도 메 인 이름 입 니 다.그래서 다음 그림 과 같은 도 메 인 이름 을 작성 해 야 합 니 다.

2.메뉴 만 들 기
만 들 기 메뉴 는 마이크로 사이트 배경 을 통 해 만 들 수 있 습 니 다.개발 자 모드 를 열지 않 으 면 위 챗 공식 플랫폼 배경 을 통 해 만 들 수도 있 습 니 다.
메뉴 는 클릭 하여 링크 를 여 는 모드,즉 view 모드 를 사용 합 니 다.만약 에 개발 자 모드 를 사용한다 면 위 챗 에 다음 코드 를 제출 하면 공중 번호 메뉴(개발 자 문서)를 만 들 수 있 습 니 다.
{
     "button":[
     {
          "type":"view",
          "name":" ",
          "url":"https://open.weixin.qq.com/connect/oauth2/authorize?appid={ APPID}&redirect_uri={ }&response_type=code&scope=snsapi_base&state=1#wechat_redirect"
      }]
}
코드 1 제출 할 메뉴 코드 입 니 다.
APPID 가 져 온 위 치 는 바로 위 에 리 셋 주 소 를 입력 한'개발 자 센터'입 니 다.다음은 PHP 로 메뉴 제출 을 실현 합 니 다.

function curl_info($appid,$secret) {
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
  // curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  $tmpInfo = curl_exec($ch);
  if (curl_errno($ch)) { 
    echo 'Errno'.curl_error($ch);
  }
  curl_close($ch);
  $arr= json_decode($tmpInfo,true);
  return $arr;
}
function curl_menu($ACCESS_TOKEN,$data) {
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$ACCESS_TOKEN);
  curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
  curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  $tmpInfo = curl_exec($ch);
  if (curl_errno($ch)) {
    echo 'Errno'.curl_error($ch);
  }
  curl_close($ch);
  $arr= json_decode($tmpInfo,true);
  return $arr;
}
function creat_menu() {
  $ACCESS_LIST= curl_info(APP_ID,APP_SCR);// , define APP_ID APP_SCR( ),
  if($ACCESS_LIST['access_token']!='') {
    $access_token = $ACCESS_LIST['access_token'];// ACCESS_TOKEN
    $data = ' 1 ';
    $msg = curl_menu($access_token,preg_replace("#u([0-9a-f]+)#ie", "iconv('UCS-2', 'UTF-8', pack('H4', '1'))", $data));
    if($msg['errmsg']=='ok') {
      die(' !');
    }
    else {
      die(' !');
    }
  }
  else {
    die(' , AppId AppSecret ');
  }
}
create_menu();
?>
코드 2 PHP 로 위 챗 공식 번호 메뉴 만 들 기
코드 2 는 사실 좀 지루 해서 핵심 부분 을 빨간색 으로 표시 했다.이렇게 해서 당신 의 위 챗 공식 번호 에서'로그 인 마이크로 사이트'를 만 드 는 메뉴 를 곧 볼 수 있 을 것 입 니 다.이 메뉴 를 클릭 하면 마이크로 사이트 에 로그 인 할 수 있 습 니 다.
PHP 가 필요 하지 않 으 면 위 챗 공식 플랫폼 백 스테이지 메뉴 사용자 정의 에 링크 를 직접 쓰 면 됩 니 다.

위의 그림 에서 이 곳 에서 링크 를 여 는 방식 으로 메뉴 를 만 듭 니 다.OK,다음 에 위 에 있 는 링크 를 넣 으 세 요.
https://open.weixin.qq.com/connect/oauth2/authorize?appid={위 챗 공식 플랫폼 배경 에서 이 APPID 가 져 오기}&redirecturi={도 메 인 이름 의 주 소 를 되 돌려 줍 니 다}&responsetype=code&scope=snsapi_base&state=1#wechat_redirect
메뉴 를 만 들 면 됩 니 다.
물론 당신 은 자신의 위 챗 관리 배경 에 이 링크 를 추가 하면 될 수도 있 습 니 다.
3.리 셋 페이지 에서 openid 가 져 오기
세심 한 당신 은 이미 발견 하 였 을 것 입 니 다.위의 링크 주소 에는 인자 scope=snsapi 가 포함 되 어 있 습 니 다.scope=snsapi 대신 baseuserinfo 는 전 자 를 사용 할 때 사용자 가 권한 수여 단 추 를 누 르 지 않 고 바로 리 셋 페이지 로 넘 어 갈 필요 가 없 기 때문에 후 자 는 권한 수여 단 추 를 눌 러 야 합 니 다.그러나 권한 수여 단 추 를 누 르 면 좋 습 니 다.하 나 는 공공 번호 에 관심 이 없 는 상황 에서 도 권한 을 부여 할 수 있 습 니 다.다른 하 나 는 권한 을 수 여 받 은 후에 사용자 의 일부 정 보 를 얻 을 수 있 습 니 다.예 를 들 어 닉네임,성별,소재 지 를 얻 을하지만 저 희 는 openid 를 이용 하여 로그 인 하기 위해 서 전 자 를 선택 하면 됩 니 다.
메뉴 를 클릭 하면 위 챗 authorise 의 처 리 를 통 해 제출 한 리 셋 주소 로 이동 합 니 다.(여기 서 알 람 이 필요 합 니 다.리 셋 주 소 는 인 자 를 가지 고 있 지 않 는 것 이 좋 습 니 다.예 를 들 어 xxx/?callback=fromweixin,위 챗 이 리 셋 주소 로 넘 어가 도 인 자 를 가 져 가 야 하기 때문에 이 인 자 는 당신 이 필요 로 하 는 것 입 니 다).위 챗 에서 아래 URL 로 이동:
리 셋 주소/?code=CODE&state=1
위의 코드 는$GET['code']는 CODE 값 을 얻 습 니 다.이 CODE 값 과 appid 를 이용 하여 openid 와 access 를 얻 을 수 있 습 니 다.token。
다음은 PHP 로 다음 과 같이 구현 합 니 다.
if($_GET['code']) {
  $code = $_GET['code'];
  $data = get_by_curl('https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=APPSRC&code='.$code.'&grant_type=authorization_code');
  $data = json_decode($data);
  $openid = $data->openid;
  $access_token = $data->access_token;
}
function get_by_curl($url,$post = false){
    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    if($post){
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,$post);
    }
    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}
이렇게 하면 openid 와 access 를 얻 을 수 있 습 니 다.token,이러한 값 을 이용 하여 저 희 는 위 챗 공공 플랫폼 을 이용 하여 사용자 의 기본 정보 api 인 터 페 이 스 를 얻 고 사용자 의 기본 정 보 를 얻 을 수 있 습 니 다.
본 고 에서 말 한 것 이 모두 가 PHP 를 바탕 으로 하 는 위 챗 공중 호 개발 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기