ThinkPHP implementiert die WeChat-Drei-Parteien-Anmeldung
Eine kleine Episode ist, dass die App vor langer Zeit die WeChat-Drei-Parteien-Anmeldung implementiert und später die WeChat-Drei-Parteien-Anmeldung für den PC hinzugefügt hat. Das Dokument besagt, dass die Unionid für verschiedene Anwendungen einheitlich ist Unter demselben Konto, aber die App verwendet eine UID. Die vom PC erhaltene Union-ID stimmte immer nicht überein, was zu einer Zeitverschwendung bei der Suche nach dem Problem der Datenvereinigung führte, und die anderen Probleme wurden gelöst! Ich hoffe, dass Freunde, die Apps und PCs erstellen, auf die Drei-Wege-WeChat-Anmeldung achten müssen. Sowohl Apps als auch PCs benötigen eine Unionid! Okay, fangen wir damit an, Ihnen beizubringen, wie Sie die Drei-Parteien-WeChat-Anmeldung auf dem PC integrieren:
1. Die bei der Bewerbung ausgefüllten Informationen, die gescannte Kopie des Registrierungsformulars für die Hauptwebsite, werden vom Kunden bereitgestellt und der Rest wird von Ihnen selbst ausgefüllt. Beachten Sie, dass die autorisierte Rückrufdomäne als Domänenname der ersten Ebene geschrieben werden muss , die beim Aufruf von
mit der recudirt_url übereinstimmen sollte
Schritte zum Aufrufen der Schnittstelle
(1):
Beachten Sie, dass das kleine Symbol von WeChat der Link für die WeChat-Anmeldung ist, bei dem es sich um das Tag a handelt, und href dieser Wert ist (WeChat-Anmeldung des offiziellen Dokuments Nr. 1 Store)
https://open.weixin.qq.com/connect/qrconnect?appid=wxbdc5610cc59c1631&redirect_uri=https://passport.yhd.com/wechat/callback.do&response_type=code&scope=snsapi_login&state=3d6be0a4035d839573b04816624a415e#wechat_re
(2) Der obige Link gibt einen Codeparameter zurück, der das Medium für den Austausch von access_token- und openid-Werten darstellt. Anschließend wird er logisch beurteilt
if(isset($_GET['code'])&&$_GET['state'] =='3d6be0a4035d839573b04816624a415e') {
//Die aufgerufene Methode besteht darin, die persönlichen Daten des Benutzers abzurufen
$res = $this->message_request($code);
}
öffentliche Funktion message_request($code){
//Ändern Sie Ihr eigenes
$appid = "wx16a15XXXXXXXXX";
$appsecret = "fc4b2b999787cXXXXXXXXXXX";
//Ändern Sie Ihr eigenes
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$appsecret&code=$code&grant_type=authorization_code";
$output = $this->httpsRequest($url);
$jsoninfo = json_decode($output, true);
$openid = $jsoninfo["openid"];
$access_token = $jsoninfo['access_token'];
$url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
$output = $this->httpsRequest($url);
$message = json_decode($output,true);
return $message;
}
öffentliche Funktion httpsRequest($url,$data = null){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
Wichtig:
Der access_token unterscheidet sich von der Benutzerautorisierung der WeChat-Plattform. Die öffentliche WeChat-Plattform hat keine Beschränkung. Sie muss gleichzeitig generiert werden und kann nicht ablaufen und PC-Benutzer synchronisieren, wird [„unionid“] für verschiedene Anwendungen unter derselben offenen Plattform verwendet. Sowohl Apps als auch PCs benötigen diese
Ergebnis erhalten
array(10) { ["openid"] => string(28) "oD5XQwgVj1gLb3_zgjP72uDgESYk" ["nickname"] => string(6) "Liu Zhu" //Benutzername ["sex"] => 1) //Geschlecht 1: Männlich ["Sprache"] => string(5) "zh_CN" ["Stadt"] => Bezirk ["Provinz"] => (7) "Tianjin" //Province["country"] => string(2) "Tianjin" //City["headimgurl"] => mmopen/aQVS6rQD9yJTTHTcyb0AqLOQ3rBoyNL3CyEJleogBib53Y6xiaibZvfZ6quDApeKuPG10sCYKkDvPwkiayUj3dMXjNicOVkV73x1k/0" //Benutzeravatar ["privilege"] => array(0) { } ["unionid"] => string( 28) „o2VJ4xEUwd51_7F2bhisYBhF3fVk“ //Unionid-App- und PC-Informationen sind einheitliche Benchmarks}