Développement PHP WeChat : Comment implémenter un menu personnalisé

PHPz
Libérer: 2023-05-13 13:32:01
original
1642 Les gens l'ont consulté

Avec le développement rapide des comptes officiels WeChat, de plus en plus d'entreprises commencent à utiliser les comptes officiels WeChat pour le marketing et les services aux utilisateurs. Dans le développement des comptes publics WeChat, les menus personnalisés sont une fonction très importante. Cet article explique comment implémenter un menu personnalisé dans le développement PHP WeChat.

1. Prérequis

Avant de commencer, vous devez préparer les éléments suivants :

1. L'appid et l'appsecret du compte officiel WeChat.

2. Le compte officiel WeChat a été lié à WeChat Pay et a activé les autorisations de paiement JSAPI. (Le paiement JSAPI est requis pour les menus personnalisés)

2. Créez un menu

Avant de commencer à créer un menu, vous devez comprendre les règles du menu personnalisé de WeChat.

1. Le menu personnalisé peut inclure jusqu'à 3 menus de premier niveau, et chaque menu de premier niveau peut inclure jusqu'à 5 menus de deuxième niveau.

2. L'autorité de contrôle des menus est le compte public, et des opérations telles que la création, l'interrogation et la suppression de menus peuvent être mises en œuvre via l'interface.

3. Les types d'actions de réponse du menu incluent le clic (événement push de clic), la vue (URL de saut), scancode_push (événement push de code d'analyse), scancode_waitmsg (événement push de code d'analyse et la boîte d'invite "réception de message" apparaît) , pic_sysphoto (système pop-up pour prendre des photos et envoyer des photos), pic_photo_or_album (pop-up pour prendre des photos ou albums pour envoyer des photos), pic_weixin (expéditeur d'album photo pop-up WeChat), location_select (sélecteur d'emplacement géographique pop-up) , media_id (envoyer des messages), view_limited (accéder aux images et aux textes) URL du message).

Ensuite, nous commençons à créer un menu personnalisé. Tout d'abord, vous devez définir la structure de menu correspondante. L'exemple de code est le suivant :

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;
    }
}
Copier après la connexion

Une structure MenuButton est définie ici, y compris le menu de premier niveau et le menu de deuxième niveau, ainsi que le type de menu, le nom, clé, URL, etc. Lors de l'instanciation d'un objet MenuButton, vous pouvez transmettre les paramètres correspondants.

Ensuite, nous créons un menu personnalisé via la structure MenuButton. L'exemple de code est le suivant :

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;
}
Copier après la connexion

Ici, en créant une instance de MenuButton, le menu de premier niveau et le menu de deuxième niveau sont définis couche par couche, et enfin le menu est créé grâce au succès de l'interface correspondante.

3. Interroger le menu

En plus de créer des menus, nous pouvons également utiliser l'interface pour interroger les menus créés. L'exemple de code est le suivant :

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;
}
Copier après la connexion

L'interface menu_get est utilisée ici pour interroger le menu créé.

4. Supprimer le menu

Si nous devons supprimer le menu existant, nous pouvons également le faire via l'interface correspondante. L'exemple de code est le suivant :

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;
}
Copier après la connexion

5. Résumé

Cet article explique comment créer, interroger et supprimer des menus personnalisés dans le développement PHP WeChat. J'espère qu'il sera utile à tout le monde. Dans le même temps, vous devez faire attention aux règles des menus personnalisés et définir et créer des menus conformément aux règles. Les menus personnalisés peuvent aider les entreprises à mieux servir les utilisateurs et à améliorer l'expérience utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal