


Ausführliche Erläuterung der benutzerdefinierten Menüoberfläche von PHP WeChat, der Kundendienstoberfläche und des QR-Code-Nutzungscodes
So rufen Sie die erweiterte WeChat-Schnittstelle auf
Der Unterschied zwischen der erweiterten WeChat-Schnittstelle und der normalen WeChat-Schnittstelle
Der Hintergrundserver kann WeChat-Schnittstellen aufrufen, um Nachrichten mit WeChat-Benutzern zu kommunizieren. Bei diesen Schnittstellen handelt es sich um grundlegende Schnittstellen, und Sie können sie ohne Bezahlung oder Identitätsauthentifizierung aufrufen. Es gibt jedoch einige erweiterte Schnittstellen. Ihr offizielles WeChat-Konto muss bestimmte Berechtigungen erfüllen, z. B. die WeChat-Authentifizierung, um das benutzerdefinierte Menü aufzurufen, WeChat-Zahlungen und andere erweiterte Funktionen.
Das Testkontosystem öffentlicher WeChat-Konten kann diese erweiterten Schnittstellen jedoch anwenden (mit Ausnahme von Schnittstellen, die Transaktionen wie WeChat-Zahlungen beinhalten).
Aufruf der erweiterten WeChat-Schnittstelle
Aufruf der erweiterten WeChat-Schnittstelle muss zuerst eine token_access-Schnittstelle aufrufen erweiterte Schnittstellen aufgerufen werden.
Wie folgt: Schematische Darstellung der Verbindung der erweiterten Schnittstelle
Der Aufruf von token_access erfordert appID und appsecreset (wird bereits bei der Entwicklung der WeChat-Plattform für öffentliche Konten verwendet (1 ) Sagen Sie den Ursprung der beiden)
Der Aufrufcode lautet wie folgt
<?php $appid = "wxbad0b4x543aa0b5e"; $appsecret = "ed222a84da15cd24c4bdfa5d9adbabf2"; $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret"; //下面是一个cURL会话过程,通过这个会话可以返回一段字符串{"access_token":"NU7Kr6v9L9TQaqm5NE3OTPctTZx797Wxw4Snd2WL2HHBqLCiXlDVOw2l-Se0I-WmOLLniAYLAwzhbYhXNjb"} 这就是我们要获得的Access Token了。在调用高级功能接口的时候就靠它。这个过程用的时候直接引用就好,不需要深究,这个cURL系统相关函数有点多而且复杂。 $ch = curl_init();//初始化 curl_setopt($ch, CURLOPT_URL, $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);//执行对话,获取接口数据Access Token curl_close($ch);//关闭会话 $jsoninfo = json_decode($output, true);//解码接口数据,将json格式字符串转换成php变量或数组。默认是变量,加true后是数组。 $access_token = $jsoninfo["access_token"]; ?>
Aufruf der erweiterten WeChat-Schnittstelle
1), Aufruf die benutzerdefinierte Menüfunktion
//创建一个自定义菜单的json字符串 $jsonmenu = '{ "button":[ { "name":"关于我们", "sub_button":[ { "type":"click", "name":"公司简介", "key":"公司简介" }, { "type":"click", "name":"社会责任", "key":"社会责任" }, { "type":"click", "name":"联系我们", "key":"联系我们" }] }, { "name":"产品服务", "sub_button":[ { "type":"click", "name":"微信平台", "key":"微信平台" }, { "type":"click", "name":"微博应用", "key":"微博应用" }, { "type":"click", "name":"手机网站", "key":"手机网站" }] }, { "name":"技术支持", "sub_button":[ { "type":"click", "name":"文档下载", "key":"文档下载" }, { "type":"click", "name":"技术社区", "key":"技术社区" }, { "type":"click", "name":"服务热线", "key":"服务热线" }] }] }'; $url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token;//接口地址 $result = https_request($url, $jsonmenu);//与接口建立会话 var_dump($result); function https_request($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; } //把这段代码加入到上面的调用Access Token接口的代码中就可以实现在微信公众号界面添加菜单的功能。
Wenn wir dem offiziellen WeChat-Konto ein Menü hinzufügen, wie stellt man den entsprechenden Effekt ein, wenn man auf das Menü klickt?
Dabei handelt es sich um eine weitere XML-Art der Datenübertragung:
<xml> <ToUserName><![CDATA[gh_82479813ed64]]></ToUserName> <FromUserName><![CDATA[ojpX_jig-gyi3_Q9fHXQ4rdHniQs]]></FromUserName> <CreateTime>1392297442</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[CLICK]]></Event> <EventKey><![CDATA[公司简介]]></EventKey> </xml> //上面是点击click菜单的数据传递类型,数据会发送给后台服务器,然后服务器做出响应。
Es gibt viele Menütypen und die XML-Typen sind unterschiedlich. Einzelheiten finden Sie in den entsprechenden Dokumenten auf der öffentlichen Kontoplattform WeChat.
*Was ich hier erklären möchte, ist, dass Sie den WeChat-Server betreten können, um die entsprechende Funktion aufzurufen, solange Sie über die AppID und das Appsecret des offiziellen WeChat-Kontos verfügen indem Sie diesen PHP-Code in einem beliebigen Serverbereich ausführen. Er muss nicht unter einem Server mit Token-Verifizierung ausgeführt werden. Die Token-Überprüfung dient dazu, dass der Backend-Server ermittelt, ob die Datenquelle vom WeChat-Server stammt, und hat wenig mit dem Aufrufen der High-Level-Schnittstelle des WeChat-Servers zu tun.
Die PHP-Datei muss auf dem Server ausgeführt werden, um eine Wirkung zu erzielen.
Der Aufruf anderer erweiterter Schnittstellen erfolgt auf die gleiche Weise wie der Aufruf des benutzerdefinierten Menüs.
2), rufen Sie die Kundendienstschnittstelle auf
Wenn ein WeChat-Benutzer aktiv eine Nachricht an ein öffentliches WeChat-Konto sendet (einschließlich Senden einer Nachricht, Klicken auf ein benutzerdefiniertes Menüklickereignis, Abonnieren eines Ereignis und Scannen eines QR-Codes, Zahlungserfolgsereignis) WeChat sendet die Nachrichtendaten an den Entwickler. Entwickler können innerhalb eines bestimmten Zeitraums Nachrichten über die Kundendienstschnittstelle aufrufen und Nachrichten an Benutzer senden, indem sie ein JSON-Datenpaket veröffentlichen.
Der Code lautet wie folgt:
$access_token = "nFX6GFsspSLBKJLgMQ3kj1YM8_FchRE7vE2ZOIlmfiCOQntZKnBwuOen2GCBpFHBYS4QLGX9fGoVfA36tftME2sRiYsKPzgGQKU-ygU7x8cgy_1tlQ4n1mhSumwQEGy6PK6rdTdo8O8GROuGE3Hiag"; $openid = "o7Lp5t6n59DeX3U0C7Kric9qEx-Q";//微信用户都有一个openID
Die folgende Abbildung zeigt, wie man openID erhält.
$data = '{ "touser":"'.$openid.'", "msgtype":"text", "text": { "content":"Hello World" } }';//通过基础消息接口发送的数据是XML格式的,但是调用客服接口发送的数据是json数据格式,更易传输。 $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$access_token; $result = https_request($url,$data); var_dump($result); function https_request($url,$data) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); if (curl_errno($curl)) { return 'Errno'.curl_error($curl); } curl_close($curl); return $result; }
Informationen zur Kundendienstoberfläche zum Senden von grafischen Nachrichten, Musiknachrichten und Videonachrichten finden Sie unter die öffentliche WeChat-Plattform für spezifische Formatentwicklungshilfedokumentation.
Kundendienstschnittstelle kann mit Nachrichtenschnittstelle gemischt werden.
Hier verstehen Sie vielleicht nicht, warum Sie eine solche Kundendienstschnittstelle benötigen, da Sie über die passive Antwortnachrichtenschnittstelle XML-Daten direkt an Benutzer senden können? Es versteht sich, dass eine passive Antwortnachricht eine einmalige Antwort auf dieselbe Nachricht nur einmal ist. Wenn Sie den Namen eines Sängers in eine Musikplattform eingeben, wird Ihnen die per passive Antwort gesendete Nachricht immer mit demselben Lied antworten. Über die Kundendienstschnittstelle, die eine MySQL-Datenbank umfasst, können Sie jedoch jedes Mal auf andere Songs antworten.
Etwas einfacher, eine öffentliche WeChat-Plattform zum Anzeigen von Expresslieferungen einschließlich der Adresse. Jedes Mal, wenn Sie dieselbe Bestellnummer eingeben, kann der Hintergrund jedes Mal auf den Ort der Bestellung antworten (für denselben Text können unterschiedliche Antworten erfolgen), genau wie bei einer manuellen Antwort. Dies ist die Kundendienstoberfläche.
3), QR-Code-Schnittstelle generieren
Es gibt zwei Arten von QR-Codes, nämlich temporäre QR-Codes und permanente QR-Codes. Ersteres hat eine Ablaufzeit von bis zu 1800 Sekunden.
Sie müssen 3 Schnittstellen aufrufen, um einen QR-Code zu generieren.
Die erste ist access_token.
Die zweite besteht darin, eine Ticketschnittstelle zu generieren.
Die dritte besteht darin, über die zweite Schnittstelle generierte Tickets gegen 2 QR einzutauschen Codebild.
$access_token = " xDx0pD_ZvXkHM3oeu5oGjDt1_9HxlA-9g0vtR6MZ-v4r7MpvZYC4ee4OxN97Lr4irkPKE94tzBUhpZG_OvqAC3D3XaWJIGIn0eeIZnfaofO1C3LNzGphd_rEv3pIimsW9lO-4FOw6D44T3sNsQ5yXQ";//假定获取的ACCESS TOKEN为这段代码。 //临时二维码 $qrcode = '{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 10000}}}'; //永久二维码 $qrcode = '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 1000}}}'; $url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=$access_token";//创建ticket接口 $result = https_request($url,$qrcode); $jsoninfo = json_decode($result, true); $ticket = $jsoninfo["ticket"]; function https_request($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; } $ticket = "gQHi8DoAAAAAAAAAASxodHRwOi8vd2VpeGluLnFxLmNvbS9xL0UweTNxNi1sdlA3RklyRnNKbUFvAAIELdnUUgMEAAAAAA==";//获取ticket的字符串 $url = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=".urlencode($ticket);//ticket对面二维码图片代码。 $imageInfo = downloadWeixinFile($url); $filename = "qrcode.jpg"; $local_file = fopen($filename, 'w'); if (false !== $local_file){ if (false !== fwrite($local_file, $imageInfo["body"])) { fclose($local_file); } } function downloadWeixinFile($url) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_NOBODY, 0); //只取body头 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $package = curl_exec($ch); $httpinfo = curl_getinfo($ch); curl_close($ch); return array_merge(array('body' => $package), array('header' => $httpinfo)); }
Führen Sie diesen Code im Serverbereich aus und der Browser generiert ein QR-Code-Bild.
Erhalten Sie funktionale Schnittstellen, die nicht zu WeChat gehören, z. B. zum Abrufen von Verkehrsinformationen und Wettervorhersage.
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der benutzerdefinierten Menüoberfläche von PHP WeChat, der Kundendienstoberfläche und des QR-Code-Nutzungscodes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Wenn Sie ein erfahrener PHP-Entwickler sind, haben Sie möglicherweise das Gefühl, dass Sie dort waren und dies bereits getan haben. Sie haben eine beträchtliche Anzahl von Anwendungen entwickelt, Millionen von Codezeilen debuggt und eine Reihe von Skripten optimiert, um op zu erreichen

Dieses Tutorial zeigt, wie XML -Dokumente mit PHP effizient verarbeitet werden. XML (Extensible Markup-Sprache) ist eine vielseitige textbasierte Markup-Sprache, die sowohl für die Lesbarkeit des Menschen als auch für die Analyse von Maschinen entwickelt wurde. Es wird üblicherweise für die Datenspeicherung ein verwendet und wird häufig verwendet

JWT ist ein offener Standard, der auf JSON basiert und zur sicheren Übertragung von Informationen zwischen Parteien verwendet wird, hauptsächlich für die Identitätsauthentifizierung und den Informationsaustausch. 1. JWT besteht aus drei Teilen: Header, Nutzlast und Signatur. 2. Das Arbeitsprinzip von JWT enthält drei Schritte: Generierung von JWT, Überprüfung von JWT und Parsingnayload. 3. Bei Verwendung von JWT zur Authentifizierung in PHP kann JWT generiert und überprüft werden, und die Funktionen und Berechtigungsinformationen der Benutzer können in die erweiterte Verwendung aufgenommen werden. 4. Häufige Fehler sind Signaturüberprüfungsfehler, Token -Ablauf und übergroße Nutzlast. Zu Debugging -Fähigkeiten gehört die Verwendung von Debugging -Tools und Protokollierung. 5. Leistungsoptimierung und Best Practices umfassen die Verwendung geeigneter Signaturalgorithmen, das Einstellen von Gültigkeitsperioden angemessen.

Eine Zeichenfolge ist eine Folge von Zeichen, einschließlich Buchstaben, Zahlen und Symbolen. In diesem Tutorial wird lernen, wie Sie die Anzahl der Vokale in einer bestimmten Zeichenfolge in PHP unter Verwendung verschiedener Methoden berechnen. Die Vokale auf Englisch sind a, e, i, o, u und sie können Großbuchstaben oder Kleinbuchstaben sein. Was ist ein Vokal? Vokale sind alphabetische Zeichen, die eine spezifische Aussprache darstellen. Es gibt fünf Vokale in Englisch, einschließlich Großbuchstaben und Kleinbuchstaben: a, e, ich, o, u Beispiel 1 Eingabe: String = "TutorialPoint" Ausgabe: 6 erklären Die Vokale in der String "TutorialPoint" sind u, o, i, a, o, ich. Insgesamt gibt es 6 Yuan

Statische Bindung (statisch: :) implementiert die späte statische Bindung (LSB) in PHP, sodass das Aufrufen von Klassen in statischen Kontexten anstatt Klassen zu definieren. 1) Der Analyseprozess wird zur Laufzeit durchgeführt.

Was sind die magischen Methoden von PHP? Zu den magischen Methoden von PHP gehören: 1. \ _ \ _ Konstrukt, verwendet, um Objekte zu initialisieren; 2. \ _ \ _ Destruct, verwendet zur Reinigung von Ressourcen; 3. \ _ \ _ Call, behandeln Sie nicht existierende Methodenaufrufe; 4. \ _ \ _ GET, Implementieren Sie den dynamischen Attributzugriff; 5. \ _ \ _ Setzen Sie dynamische Attributeinstellungen. Diese Methoden werden in bestimmten Situationen automatisch aufgerufen, wodurch die Code -Flexibilität und -Effizienz verbessert werden.
