Die jüngste Website-Entwicklung auf der PC-Seite erfordert eine autorisierte WeChat-Anmeldung, da die Mobiltelefonseite bereits in der Anfangsphase eine große Anzahl von WeChat-Benutzergruppen gewonnen hat, denken wir jetzt darüber nach der Integration von Ressourcen, um die gleichen Anforderungen an die Datensynchronisierung von WeChat-Benutzern zu erfüllen.
Da Sie mit dem Wissen über die WeChat-Entwicklung vertraut sind, werden Sie zwangsläufig mit der Verwendung von OpenID und UnionID konfrontiert. Das Folgende ist das offizielle Dokument der WeChat-Einführung. Bitte achten Sie auf die Unterscheidung:
Nachdem der Follower mit dem offiziellen Konto interagiert hat, kann das offizielle Konto die OpenID des Followers erhalten ( verschlüsselte WeChat-ID, jeder Benutzer (Die OpenID jedes offiziellen Kontos ist einzigartig. Die OpenID desselben Benutzers ist für verschiedene offizielle Konten unterschiedlich.) Offizielle Konten können über entsprechende Schnittstellen grundlegende Benutzerinformationen auf Basis von OpenID erhalten, darunter Spitzname, Avatar, Geschlecht, Stadt, Sprache und Zeit der Aufmerksamkeit.
Bitte beachten Sie, dass Entwickler, wenn sie Benutzerkonten zwischen mehreren offiziellen Konten oder zwischen offiziellen Konten und mobilen Anwendungen vereinheitlichen müssen, zur offenen WeChat-Plattform gehen müssen (open.weixin. qq .com) Nach der Bindung des offiziellen Kontos kann der UnionID-Mechanismus verwendet werden, um die oben genannten Anforderungen zu erfüllen.
Einfach ausgedrückt:
OpenID ist die Identifikation eines gewöhnlichen Benutzers und ist für das aktuelle Entwicklerkonto eindeutig . Eine OpenID entspricht einem offiziellen Konto.
UnionID ist die einheitliche Identität des Benutzers. Bei Anwendungen unter einem WeChat Open Platform-Konto ist die UnionID desselben Benutzers eindeutig.
hat diesen Kreis umgangen, das heißt, es gibt einen Unterschied zwischen der Entwicklung öffentlicher WeChat-Konten und der WeChat-Entwicklungsplattform. Wenn derselbe WeChat-Benutzer unterschiedliche Plattformen (z. B. PC, App, WeChat-Applet usw.) verwendet, um sich auf der Website anzumelden, muss das Konto gebunden werden, und das gebundene Konto kann nicht durch OpenID unterschieden werden, sondern muss unterschieden werden von UnionID.
Anhang Ein häufiges Designproblem ist hauptsächlich auf die unzureichende Nutzung von Wissen vor der Entwicklung zurückzuführen, was sich natürlich auch auf die spätere Erweiterung auswirkt Ich hoffe, dass dies ein Weckruf für Sie sein kann.
Entsprechend den folgenden Anforderungen habe ich mich für „Website-Anwendungsentwicklung“ entschieden. Erstellen und befolgen Sie dann die offiziellen Anweisungen zur Beantragung von Materialien, was in der Regel mehr als drei Tage dauert.
Nachdem der Antrag erstellt wurde, muss er auch die Anforderungen für den Erhalt von Schnittstellenberechtigungen erfüllen. Ein Mitarbeiter wird sich proaktiv mit Ihnen in Verbindung setzen und die Bearbeitung kann in der Regel innerhalb eines Tages erfolgen.
Zur Gewährleistung Damit die UnionID, die dem WeChat-Benutzer entspricht, unter demselben Entwicklungskonto gebunden und verwendet wird, muss das entsprechende offizielle Konto/Dienstkonto in der folgenden Liste gebunden sein. Das Dokument führt ein, dass die WeChat-Zahlungsfunktion im Allgemeinen erfüllt sein muss
Tatsächlich die Hauptzeit wird für den oben genannten frühen Anwendungsbetrieb aufgewendet, aber die eigentliche Code-Implementierung ist äußerst einfach. Das Folgende ist meine Implementierungsmethode. Bitte geben Sie mir Ihr Feedback.
Es ist üblich, die Hauptkonfigurationsinformationen in der Konfigurationsdatei „ApplicationCommonConfconfig.php“ zu platzieren.
'WEIXIN_LOGIN' => array( // 微信开放平台 使用微信帐号登录App或者网站 配置信息 'OPEN_APPID' => 'wxbd961b2a6b7b2963', //应用 AppID 'OPEN_APPSECRET' => 'e6xxxxxxxxxxxxxxxxxxxxe90',//应用 AppSecret 'OPEN_CALLBACKURL' => 'http://www.52zhenmi.com/Home/Login/wxBack', //微信用户使用微信扫描二维码并且确认登录后,PC端跳转路径 ),
public function wxIndex(){ //--微信登录-----生成唯一随机串防CSRF攻击 $state = md5(uniqid(rand(), TRUE)); $_SESSION["wx_state"] = $state; //存到SESSION $callback = urlencode($this->callBackUrl); 'https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect'; $wxurl = "https://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; }
Der Anzeigeeffekt ist wie folgt:
Nach erfolgreichem Scannen und Anmelden springt die Seite weiter
4. Zusammenfassung
1 Gemäß dem Ende der oben genannten Funktionsimplementierung können die Informationen der angemeldeten Benutzer abgerufen werden openID und UnionID können zur späteren Geschäftsverarbeitung in der Datenbank gespeichert werden.
2. Meine Fähigkeit, dies zu erklären, ist begrenzt. Es wird empfohlen, auf offizielle Entwicklungsdokumente und die praktischen Erfahrungen von Google-Senioren zu verweisen...
3. Ich habe online einen guten Artikel gesehen, empfohlene Referenz: Bindungsschema für Benutzer öffentlicher WeChat-Konten und Website-Benutzer
Verwandte Empfehlungen:
Maßgeschneiderte Lösung zum Scannen von WeChat-Anmeldecodes
So integrieren Sie die WeChat-Anmeldung schnell in Das Laravel-Framework von PHP
Das obige ist der detaillierte Inhalt vonSo melden Sie sich mit WeChat auf der PHP-Website an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!