>백엔드 개발 >PHP 튜토리얼 >WeChat 공개 계정 개발에 대한 튜토리얼 4를 완료하세요

WeChat 공개 계정 개발에 대한 튜토리얼 4를 완료하세요

不言
不言원래의
2018-04-17 10:01:024253검색

이 기사의 내용은 WeChat 공개 계정 개발에 대한 전체 튜토리얼입니다. 이제는 모든 사람과 공유합니다.

업무상 필요에 따라 참조할 수 있습니다. 지난 2년 동안 WeChat 공개 계정은 계정과 소규모 프로그램이 되어 더 많은 프로젝트가 생산되었습니다. 그래서 저는 포괄적인 제작 튜토리얼을 작성하려고 합니다. 물론 최고의 튜토리얼은 WeChat 작업 플랫폼의 문서입니다. 여기서는 제 작품의 제작 과정에 대해서만 이야기하겠습니다. 나는 내 자신의 github에 모든 관련 기사의 소스 코드를 호스팅합니다. 팔로우를 환영합니다: 주소링크를 열려면 클릭하세요. 튜토리얼을 시작하겠습니다. 이 섹션에서는 웹페이지 인증 생성에 대해 설명합니다. 이번에는 WeChat 공개 계정 테스트 계정을 사용하여 이 기능을 완료합니다.

1. 웹 페이지 인증:

WeChat 문서:


콜백 도메인 설정:



1.1:

_Snsapi_base

메소드는 사용자의

Oopenid 만 인식 없이 자동 인증 사용자에게 속합니다. Snsapi_userinfo

를 획득하여 사용자의 기본 정보를 획득할 수 있지만, 사용자가 수동으로 인증해야 합니다.

1.2:

정보

Access_token 참고:


전체 웹페이지 인증에 사용되는

access_token은 웹페이지 인증 프로세스 중에만 사용할 수 있습니다. 다른 인터페이스에서 사용하는 access_token의 경우 기본 인터페이스에서 얻은 값을 사용해야 합니다.

1.3

전체 웹페이지 인증 프로세스:


1

1단계: 사용자는

코드를 인증하고 획득하는 데 동의합니다(사용자에게 인증 인터페이스를 열도록 안내해야 합니다). 2

2단계: 웹페이지 인증

access_token 대신 code 사용 access_token (필요한 경우) 4 Jump 주소의 기능은 다음과 같습니다.

2.2부트 점프를 구현하는 첫 번째 단계

코드는 다음과 같습니다.


// 引导跳转的方式
public function auth($action_name, $controller_name)
{
//    var_dump($action_name, $controller_name);
$bak = urlencode("http://www.xiaoziheng.club/home/".$controller_name."/".$action_name);
$redirecr_uri =urlencode('http://www.xiaoziheng.club/home/demo/getcode?bak='.$bak);
$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$this->appid."&redirect_uri="
           .$redirecr_uri."&response_type=code&scope=snsapi_userinfo&state=".time()."#wechat_redirect";
header('Location:'.$url);
}

두 매개변수는 다음과 같습니다: 점프 주소의 컨트롤러와 메소드:


public function __construct(Request $request)
{
parent::__construct();
$this->accessToken = get_access_token();
//获得方法    
$action_name =$request->action();
//获得控制器   
$controller_name = $request->controller();
if(!cookie('user')){
if($action_name !='getcode'){
$this->auth($action_name, $controller_name);
}
}
}


부트 메소드에서 getcode의 값을 얻습니다. 함수는 다음과 같습니다. : 두 번째, 세 번째, 네 번째 단계의 구현 방법이 포함됩니다.



public function getcode(Request $request)
{
$code = $_GET['code'];
if(!$code){
echo '微信服务器故障';
exit;
}
// 第二步:通过code换取网页授权中的access_token
$url ="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$this->appid."&secret=".$this->appsecret
                         ."&code=".$code."&grant_type=authorization_code";
$result =file_get_contents($url);
$result = json_decode($result,true);
if(!$result){
echo '微信服务器故障';
exit;
}
// 第三步:获取用户的基本信息,此操作仅限scope为snspai_userinfo
$url ="https://api.weixin.qq.com/sns/userinfo?access_token=".$result['access_token']."&openid="
                       .$result['openid']."&lang=zh_CN";
$result =file_get_contents($url);
$result = json_decode($result,true);
$userInfo = db('user')->where("openid","=",$result['openid'])->find();
if(!$userInfo){
echo '操作数据可以';
$data = [
'nickname' =>$result['nickname'] ,
'openid'=>$result['openid'],
'headimgurl'=>$result['headimgurl']
];
db('user')->insert($data);
$userInfo = $result;
}
// 第四步骤:跳转回跳转地址
$bak = $_GET['bak'];
cookie('user',$userInfo);
header('Location:'.$bak);
}


구현 과정에서 요청한 사용자 정보를 데이터베이스에 저장합니다. 데이터베이스에 값이 있는지 판단됩니다.

Alibaba Cloud에 서버를 설정하고 얻은 데이터는 다음과 같습니다.


웹 페이지 인증 결과는 그림과 같습니다. :



주의 사항 및 요점:


이것이 위의 테스트 결과에서 확인 프롬프트 상자가 표시되지 않는 이유이며, 각 매개 변수에 대한 충분한 이해가 필요합니다. 인터페이스에서 학습합니다. 각 매개변수의 의미 및 WeChat의 OAuth2.0 프로토콜에 대한 이해: 이 프로토콜에 대한 좋은 기사는 다음과 같습니다. 링크를 열려면 클릭하세요.

사실 WeChat의 문서를 주의 깊게 읽고 개발할 때 주의하시기 바랍니다. , 당신은 기본적으로 WeChat 공개 계정을 개발할 수 있습니다. 다음 섹션에서는 리소스 파일 업로드에 대한 지식 포인트에 대해 이야기하겠습니다...

관련 권장 사항:

WeChat 공개 계정 개발에 대한 튜토리얼 3 완료

WeChat 공개 계정 개발 튜토리얼 2 완료

WeChat 공개 계정 개발에 대한 튜토리얼 1 완료

위 내용은 WeChat 공개 계정 개발에 대한 튜토리얼 4를 완료하세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.