PHP 는 사이트 응용 위 챗 로그 인 기능 에 대한 상세 한 설명 을 실현 합 니 다.
배경
1.개발 주의사항
1.개념 구분
OpenID
과 UnionID
의 사용 을 접 하 게 될 것 입 니 다.다음은 위 챗 공식 문서 의 소개 입 니 다.구분 에 주의 하 십시오.OpenID
(암호 화 된 마이크로 신 호 를 얻 을 수 있 고 모든 사용자 가 각 공중 번호 의 OpenID
에 대해 유일한 것 이다.공중 번호 에 따라 같은 사용자 의 OpenID
이 다르다.OpenID
에 따라 사용자 의 기본 정 보 를 얻 을 수 있 는데 닉네임,이미지,성별,소재 도시,언어 와 관심 시간 을 포함한다.open.weixin.qq.com
)에 가서 공중 번 호 를 연결 해 야 UnionID
체 제 를 이용 하여 상기 수 요 를 만족 시 킬 수 있 습 니 다.OpenID
은 일반 사용자 의 표지 로 현재 개발 자 계 정 에 유일 합 니 다.하나의 OpenID
은 공중 번호 에 대응한다.UnionID
은 사용자 의 통 일 된 표지 이다.하나의 위 챗 오픈 플랫폼 계 정 에 대한 응용 은 같은 사용자 의 UnionID
이 유일 하 다.OpenID
으로 구분 할 수 없고 UnionID
으로 구분 해 야 한다.따라서 이러한 상황 이 발생 하면 아래 의 지 도 를 참고 하여
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.위 챗 오픈 플랫폼 조작아래 의 수요 에 따라'사이트 응용 개발'의 설립 을 선택 한 다음 에 공식 적 인 안내 에 따라 자 료 를 신청 하 는데 보통 3 일 이상 걸린다.
의 간략 한 기능 소개응용 프로그램 생 성 이 통 과 된 후에 인터페이스 권한 의 획득 을 만족 시 켜 야 합 니 다.직원 들 이 자발적으로 연락 을 하면 보통 하루 에 완성 할 수 있 습 니 다.
3.공식 계 정/애플 릿 연결
같은 개발 계 정 에서 위 챗 사용자 의 유 니 온 ID 바 인 딩 사용 을 확보 하기 위해 서 는 아래 목록 에 해당 하 는 공중 번호/서비스 번 호 를 바 인 딩 해 야 합 니 다.문서 에 소 개 된 것 은 보통 위 챗 결제 기능 을 만족 시 켜 야 합 니 다.
4.
access_token
시차 도 획득 권한 부여3.코드 구현
1.공공 파일 설정
'WEIXIN_LOGIN' => array(
// App
'OPEN_APPID' => 'wxbd961b2a6b7b2963', // AppID
'OPEN_APPSECRET' => 'e6xxxxxxxxxxxxxxxxxxxxe90',// AppSecret
'OPEN_CALLBACKURL' => 'http://www.52zhenmi.com/Home/Login/wxBack', // ,PC
),
2.핵심 코드
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
다음 과 같은 효과 보이 기:
인터넷 에서 좋 은 글 을 보 았 습 니 다.참고 하 시기 바 랍 니 다.위 챗 공식 번호 사용자 와 사이트 사용자 의 바 인 딩 방안
요약:
openID
과 UnionID
은 데이터 베 이 스 를 저장 하여 후기 업 무 를 처리 할 수 있 습 니 다.본 논문 에서 말 한 것 이 여러분 의 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
laravel에 yo에서 angularJs&coffeescript를 사용할 수 있도록 한다.먼저 yo 명령을 사용할 수 있어야하므로 아래에서 설치 global에 설치한 곳에서 laravel의 프로젝트 루트로 이동. 클라이언트 코드를 관리하는 디렉토리를 만들고 이동합니다. 클라이언트 환경 만들기 이것으로 히...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.