>백엔드 개발 >PHP 튜토리얼 >PHP WeChat 인터페이스로 개발된 WeChat 배포 플랫폼에 대한 분할 설명 (1) WeChat oauth2 인터페이스

PHP WeChat 인터페이스로 개발된 WeChat 배포 플랫폼에 대한 분할 설명 (1) WeChat oauth2 인터페이스

WBOY
WBOY원래의
2016-07-30 13:30:261291검색

저는 IT주인도 아니고 위대한 신도 아니지만 레이펑이 되고 싶습니다. Shenma의 글쓰기 스타일이 없으면 그냥 불평할 것입니다. 설명이 명확하지 않으면 계속 질문해 주시면 시간이 허락하는 한 최선을 다해 답변해 드리겠습니다.

이 글에서는 전체 시스템 소스 코드를 제공하지 않고, 소스 코드의 일부만 공개하고, 개발 경험과 아이디어, 질문에 대한 답변을 다루기를 바랍니다. 초보자분들에게 도움이 되셨으면 좋겠습니다. 전문가나 고수분들은 한번에 진행해 주시거나 소중한 의견 남겨주셔서 감사드립니다.


말은 그만하고 본론으로 들어가겠습니다.

기본

php현재 주류WEB개발언어 불필요 더 이상 말할 필요가 없다고 합니다. WeChat 인터페이스는 주로 WeChat 인증 로그인 인터페이스, WeChat JSSDK 공유 인터페이스 및 WeChat 결제 인터페이스를 사용하며 함정이 가득한 일련의 WeChat 인터페이스에 대해 불평해야 합니다. 유통시스템은 나중에 설명할 마케팅 모델이다. 먼저, 개인적으로 더 중요하다고 생각하는 WeChat 로그인의 첫 번째 단계(oauth2제3자 인증 인터페이스)에 대해 이야기해보겠습니다. 보안이 뛰어나며 미래를 위한 유통 시스템으로 활용될 수 있어 편리한 기반을 마련합니다. 단점은 위챗이 아닌 다른 홍보 방법으로는 불편합니다. 유일한 방법은 QR 코드를 사용하는 것입니다(링크 형태로 QR 코드를 생성하는 많은 타사 도구가 온라인에 있으며 프로그램을 사용하여 구현할 수도 있습니다. 관심이 있으면 메시지를 남겨주세요).

먼저 전설적인 WeChat API 인터페이스 문서를 살펴보세요. , 공식 웹사이트 문서 주소 http://mp.weixin.qq.com/wiki/17/c0f37d5704f0b64713d5d2c37b468d75.html

이 인터페이스를 사용하려면 인증 서비스가 필요합니다. 없으신 경우 테스트 계정을 신청하여 체험해 보실 수 있으나 홍보는 불가능합니다

웹페이지 승인 콜백 도메인명 안내

문서 작성 제3자 플랫폼을 사용하지 않고 프로젝트가 하나 또는 두 개의... 레벨 도메인을 얻는 데 필요한 경로를 구성해야 합니다. 이름은 허용됩니다. 이건 비교적 명확합니다

아래를 보면 처음에도 이해가 안 됐고 두 번째에도 이해가 안 됐어요. . . . . . 이 프로젝트는 1년 전부터 개발되기 시작했는데, 당시 문서는 지금보다 훨씬 간단했고, 인터넷에 참고 자료도 거의 없었습니다. 다행히도 마침내 기사에서 몇 가지 단서를 찾았습니다.

기타 지침

먼저 몇 가지 매개변수를 소개합니다appid 및 appsecretWeChat 공개 플랫폼의 많은 인터페이스 호출에서 이 두 매개변수를 찾을 수 있습니다.

가장 중요한 매개변수는 공개 플랫폼에 해당하는 WeChat ID의 유일한 식별인 인증 인터페이스인 openid를 호출하는 목적이기도 합니다. 사용자가 WeChat으로 로그인한 것으로 간주되면 모든 후속 비즈니스 프로세스와 데이터베이스 기록이 이를 중심으로 구축됩니다.

openid를 얻는 방법과 아바타, 닉네임, 도시, 성별 등 기본적인 사용자 정보를 얻는 방법에 대해 이야기해보겠습니다. 이것은 우리를 속이기 위한 다소 고통스러운 과정입니다. , 오른쪽? 안전상의 이유로 이유를 말씀드리겠습니다. 또 징징거려서 미안해요.

3단계

1코드 가져오기, 코드란 무엇인가요? ? ? 모르겠지만 다음 단계로 진행하려면

인터페이스 주소: https://open.weixin.qq.com /connect/oauth2/authorize?appid =APPID&redirect_uri=REDIRECT_URI&resp/span>

appid가 새롭게 개선되어 공개 플랫폼에서 만나보실 수 있습니다. redirect_uri가 핵심입니다. 위를 통한 사용자의 패스입니다. 인터페이스 주소는 WeChat 서버에 요청을 보내고, WeChat 서버는 GET을 통해 매개변수 code를 전달합니다. redirect_uri로 반환하고, $_GET 메소드를 사용하여 이를 수락합니다. scope도 중요한 매개변수입니다. snsapi_base, 두 가지 유형이 있습니다. snsapi_userinfo, 차이점에 대해 이야기해보겠습니다. WeChat 로그인만 구현하려는 경우, 즉 openid만 필요하면 snsapi_base, 장점은 방문 시 자신의 openid를 캡쳐했다는 사실을 사용자가 알 수 없다는 것입니다. openid를 가져오는 것 외에도 snsapi_userinfo를 사용하면 더 많은 WeChat 사용자 정보를 캡처할 수 있습니다. 아바타와 닉네임이 필요합니다. snsapi_userinfo를 이용하시면 됩니다. 단점은 위챗 인증 권한 페이지가 먼저 뜨고, 사용자 동의를 받아야 다음 단계로 넘어갈 수 있다는 점입니다

그림:


2. openidaccess_token

코드를 통해얻으세요. 🎜>appidappsecret

을 획득했습니다. 인터페이스: https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

json

3 형식으로 데이터를 반환합니다. 아바타 닉네임 등을 얻으세요...

openid를 통해 access_token

인터페이스:https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

json

매개변수 형식으로 데이터를 반환합니다. lang은 작성되지 않은 경우 기본적으로 영어 데이터를 사용합니다

예제 코드 조각

a.php

$url='http://www.xxx.com/b.php';

$url=urlencode($url);

$href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=xxx&redirect_uri=$ url&resp /span>

@header("location:$href");

b. php

$code=$_GET['code'];

$url='https://api.weixin.qq. com /sns/oauth2/access_token?appid=xxx&secret=xxx&code='.$code.'&grant_type=authorization_code';

$js/span>

$jsonstr = json_decode($jsonstr,true);

$access_token= $jsonstr['access_token'];

$openid= $ jsonstr['openid'];

$userurl='https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid= ' .$openid;

$userinfo=file_get_contents($userurl);

$userinfo = json_decode($userinfo,true); 🎜 >

글쎄, 거의 달성되지 않았네요. . . . . . . . . . 그런데 일정 기간 운영을 하고 나면 정보 캡쳐가 안정적이지 않습니다. 일부 유저분들은 아바타와 닉네임을 얻지 못하시는데, 오랫동안 고민했는데 어디가 문제인지 모르겠습니다. 인가요? ? ? ? ?

아, file_get_contents 함수에 문제가 있습니다. file_get_contents 구현했지만 성능이 매우 불안정했습니다. 나중에 curl을 사용하여 전환했는데 훨씬 안정적이지만 100%를 달성하지 못했습니다. 더 많이 담으려면 다양한 요인에 의해 발생하지만 기본적으로 허용 가능한 범위 내에 있습니다.

오늘은 시간이 제한되어 있습니다. 배포 시스템을 정의하고 인증 인터페이스를 표시하지 않고 WeChat 사용자 아바타 닉네임 및 기타 정보를 얻는 또 다른 방법이 있습니다. unionid여러 퍼블릭 플랫폼 개발 시 필요한 것은 쿠키로 지속적인 로그인 상태를 유지하기 위해 필요하며, 유통 시스템 클라이언트의 쇼핑몰 부분 장바구니 구현에 대해서는 2회에서 설명하겠습니다. .

첨부된 시스템 액세스 경로에 대한 QR 코드는 먼저 살펴보실 수 있으며 WeChat을 통해서만 액세스할 수 있습니다. 시스템 아키텍처, 프론트엔드 JS 스크립트, 일련의 기능 모듈 구현 문제 등을 질문할 수 있으며, 대부분의 요구에 따라 다음 업데이트의 내용을 변경하겠습니다. 사람




저작권: 이 글은 해당 블로거가 직접 작성한 글이므로, 블로거의 허락 없이 무단으로 사용할 수 없습니다.

위는 PHP WeChat 인터페이스(1) WeChat oauth2 인터페이스로 개발된 WeChat 배포 플랫폼에 대한 분할 설명과 내용을 포함하여 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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