Heim  >  Artikel  >  Backend-Entwicklung  >  PHP WeChat-Entwicklung: So implementieren Sie ein benutzerdefiniertes Menü

PHP WeChat-Entwicklung: So implementieren Sie ein benutzerdefiniertes Menü

PHPz
PHPzOriginal
2023-05-13 13:31:361583Durchsuche

Mit der rasanten Entwicklung offizieller WeChat-Konten beginnen immer mehr Unternehmen, offizielle WeChat-Konten für Marketingmaßnahmen und Benutzerdienste zu nutzen. Bei der Entwicklung öffentlicher WeChat-Konten sind benutzerdefinierte Menüs eine sehr wichtige Funktion. In diesem Artikel wird erläutert, wie Sie ein benutzerdefiniertes Menü in der PHP-WeChat-Entwicklung implementieren.

1. Voraussetzungen

Bevor Sie beginnen, müssen Sie die folgenden Dinge vorbereiten:

1. Die App-ID und das App-Geheimnis des offiziellen WeChat-Kontos.

2. Das offizielle WeChat-Konto wurde an WeChat Pay gebunden und hat JSAPI-Zahlungsberechtigungen aktiviert. (Für benutzerdefinierte Menüs ist eine JSAPI-Zahlung erforderlich)

2. Erstellen Sie ein Menü

Bevor Sie mit der Erstellung eines Menüs beginnen, müssen Sie die Regeln des benutzerdefinierten Menüs von WeChat verstehen.

1. Das benutzerdefinierte Menü kann bis zu 3 Menüs der ersten Ebene umfassen, und jedes Menü der ersten Ebene kann bis zu 5 Menüs der zweiten Ebene enthalten.

2. Die Menüsteuerungsbehörde ist das öffentliche Konto, und das Erstellen, Abfragen, Löschen und andere Vorgänge des Menüs können über die Schnittstelle realisiert werden.

3. Zu den Antwortaktionstypen des Menüs gehören click (Klick-Push-Ereignis), view (Sprung-URL), scancode_push (Scancode-Push-Ereignis), scancode_waitmsg (Scancode-Push-Ereignis und das Eingabeaufforderungsfeld „Nachrichtenempfang“ wird angezeigt). , pic_sysphoto (öffnet das System zum Aufnehmen von Bildern und Senden), pic_photo_or_album (öffnet das Öffnen von Fotos oder Alben zum Senden von Bildern), pic_weixin (öffnet den Absender des WeChat-Albums), location_select (öffnet die geografische Standortauswahl), media_id (sendet Nachrichten), view_limited (springt zu Bildern und Texten) Nachrichten-URL).

Als nächstes beginnen wir mit der Erstellung eines benutzerdefinierten Menüs. Zuerst müssen Sie die entsprechende Menüstruktur definieren:

class MenuButton{
    public $type;//菜单类型
    public $name;//菜单名称
    public $key;//菜单key
    public $url;//菜单url
    public $sub_button;//二级菜单数组

    public function __construct($name,$type,$key=null,$url=null,$sub_button=null){
        $this->name = $name;
        $this->type = $type;
        $this->key = $key;
        $this->url = $url;
        if(!empty($sub_button)){
            $this->sub_button = $sub_button;
        }
    }

    public function toArray(){
        $arr = array();
        if(count($this->sub_button) > 0){
            foreach($this->sub_button as $button){
                array_push($arr,$button->toArray());
            }
        }
        $data = array();
        $data['name'] = urlencode($this->name);
        switch($this->type){
            case 'click':
                $data['type'] = $this->type;
                $data['key'] = $this->key;
                break;
            case 'view':
                $data['type'] = $this->type;
                $data['url'] = $this->url;
                break;
            case 'scancode_push':
            case 'scancode_waitmsg':
            case 'pic_sysphoto':
            case 'pic_photo_or_album':
            case 'pic_weixin':
            case 'location_select':
                $data['type'] = $this->type;
                $data['key'] = $this->key;
                break;
            case 'media_id':
            case 'view_limited':
                $data['type'] = $this->type;
                $data['media_id'] = $this->key;
                break;
        }
        if(count($arr) > 0){
            $data['sub_button'] = $arr;
        }
        return $data;
    }
}

Hier wird eine MenuButton-Struktur definiert, einschließlich des Menüs der ersten Ebene und des Menüs der zweiten Ebene sowie des Menütyps, des Namens, Schlüssel, URL usw. Beim Instanziieren eines MenuButton-Objekts können Sie die entsprechenden Parameter übergeben.

Als nächstes erstellen wir ein benutzerdefiniertes Menü über die MenuButton-Struktur. Der Beispielcode lautet wie folgt:

function create_menu($access_token){
    $menu = array();
    $menu[] = new MenuButton('一级菜单1','click','click1');
    $menu[] = new MenuButton('一级菜单2','view',null,'http://www.baidu.com');
    $menu[] = new MenuButton('一级菜单3',null,null,null,array(
        new MenuButton('二级菜单1','scancode_push','scancode_push1'),
        new MenuButton('二级菜单2','scancode_waitmsg','scancode_waitmsg1'),
        new MenuButton('二级菜单3','pic_sysphoto','pic_sysphoto1'),
        new MenuButton('二级菜单4','pic_photo_or_album','pic_photo_or_album1')
    ));
    $data = array();
    $data['button'] = array();
    foreach($menu as $button){
        array_push($data['button'],$button->toArray());
    }
    $url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$access_token;
    $result = curl_post($url,urldecode(json_encode($data)));
    return $result;
}

Hier werden durch die Erstellung einer Instanz von MenuButton das Menü der ersten Ebene und das Menü der zweiten Ebene Schicht für Schicht definiert. und schließlich wird das Menü über die entsprechende Schnittstelle erfolgreich erstellt.

3. Fragen Sie das Menü ab

Zusätzlich zum Erstellen von Menüs können wir die Schnittstelle auch zum Abfragen der erstellten Menüs verwenden. Der Beispielcode lautet wie folgt:

function menu_query($access_token){
    $url = 'https://api.weixin.qq.com/cgi-bin/menu/get?access_token='.$access_token;
    $result = curl_get($url);
    return $result;
}

Die Schnittstelle „menu_get“ wird hier verwendet, um das erstellte Menü abzufragen.

4. Menü löschen

Wenn wir das vorhandene Menü löschen müssen, können wir dies auch über die entsprechende Schnittstelle tun. Der Beispielcode lautet wie folgt:

function menu_delete($access_token){
    $url = 'https://api.weixin.qq.com/cgi-bin/menu/delete?access_token='.$access_token;
    $result = curl_get($url);
    return $result;
}

5. Zusammenfassung

Dieser Artikel stellt vor, wie man benutzerdefinierte Menüs in der PHP-WeChat-Entwicklung erstellt, abfragt und löscht. Ich hoffe, dass er für alle hilfreich ist. Gleichzeitig müssen Sie die Regeln benutzerdefinierter Menüs beachten und Menüs gemäß den Regeln definieren und erstellen. Angepasste Menüs können Unternehmen dabei helfen, ihre Benutzer besser zu bedienen und das Benutzererlebnis zu verbessern.

Das obige ist der detaillierte Inhalt vonPHP WeChat-Entwicklung: So implementieren Sie ein benutzerdefiniertes Menü. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn