Viele Entwickler benötigen den Avatar des Benutzers, wenn sie ein offizielles WeChat-Konto erstellen. Wenn es sich um ein persönliches WeChat-Konto handelt, müssen Sie ein „Testkonto für die öffentliche Plattform“ beantragen Offizielles WeChat-Konto.
Zuerst müssen Sie das von WeChat gesendete access_token abrufen und dann die vom WeChat-Server gesendete Benutzernachricht im JSON-Format abrufen josn_decode, um es zu konvertieren, um die Nachrichten des Benutzers zu erhalten.
Bevor Sie Code schreiben, können Sie den Schnittstellenbetrieb wie unten gezeigt testen:
Betreten Sie zunächst die öffentliche WeChat-Plattform Unten:
Klicken Sie auf Entwicklertools und dann auf Online-Schnittstellen-Debugging, wie in der Abbildung unten gezeigt, und rufen Sie die Schnittstelle zur Schnittstellenauswahl auf
Klicken Sie dann auf die Seite unten und wählen Sie in der Schnittstellenart „Benutzerverwaltung“ aus, wählen Sie in der Schnittstellenliste: „Benutzerprofilinformationen abrufen“ Schnittstelle/Benutzer/Info; 🎜> Sehen Sie sich dann die WeChat-Entwicklungsdokumentation an, um das zu verwendende Access_token zu erhalten. Gehen Sie wie unten gezeigt zur App-ID und zum App-Geheimnis Geben Sie es dann in die Browser-URL ein:
Die erhaltenen Informationen sind wie folgt:
Das bedeutet, dass Sie es erfolgreich erhalten haben, um den Zugriffstoken und die persönlichen Informationen zu erhalten.
Verwenden Sie die Curl-Funktion Um die von WeChat gesendete Nachricht abzufangen, ist sie nur für 7200 Sekunden gültig, was zwei Stunden entspricht. Überprüfen Sie, ob sie abgelaufen ist. Sie müssen es erneut abrufen, um es zu beurteilen. Ich habe den Zugriffstoken und die Zeit in der Datenbank gespeichert, damit Sie ihn jederzeit zur Erkennung abrufen können im Cache oder in einer Datei abgelegt und aus der Datei aufgerufen;
Nach Erhalt des access_token können die persönlichen Informationen des Benutzers über access_token und openid abgerufen werden, wie unten gezeigt:
public function getaccss_token(){ $table = 'Access_token'; $useraccess_token = Db::table('Access_token')->select(); $appid = "你的appid"; $appsecret = "你的appsecret"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret"; //判断是不是第一次获取access_token if(!count($useraccess_token)){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); $jsoninfo = json_decode($output, true); $access_token = $jsoninfo["access_token"]; $data=['access_token'=>$access_token,'expires_time'=>($jsoninfo['expires_in']+time()-200)]; Db::table($table)->insert($data); return $access_token; }else if($useraccess_token[0]['expires_time']<time()){//判断是否过期 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); $jsoninfo = json_decode($output, true);//转换格式 $access_token = $jsoninfo["access_token"]; $data=['access_token'=>$access_token,'expires_time'=>($jsoninfo['expires_in']+time()-200)]; Db::table($table)->where('expires_time',$useraccess_token[0]['expires_time'])->update($data);//更新数据库; return $access_token; }else{ $access_token = $useraccess_token[0]['access_token']; return $access_token; } }
Das obige ist der detaillierte Inhalt vonEntwicklung eines öffentlichen PHP-WeChat-Kontos, um persönliche WeChat-Benutzerinformationen zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!