Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pembangunan PHP WeChat: Bagaimana untuk melaksanakan menu tersuai

Pembangunan PHP WeChat: Bagaimana untuk melaksanakan menu tersuai

PHPz
PHPzasal
2023-05-13 13:31:361583semak imbas

Dengan perkembangan pesat akaun rasmi WeChat, semakin banyak syarikat mula menggunakan akaun rasmi WeChat untuk pemasaran dan perkhidmatan pengguna. Dalam pembangunan akaun awam WeChat, menu tersuai adalah fungsi yang sangat penting. Artikel ini akan memperkenalkan cara untuk melaksanakan menu tersuai dalam pembangunan PHP WeChat.

1. Prasyarat

Sebelum memulakan, anda perlu menyediakan perkara berikut:

1.

2. Akaun rasmi WeChat telah terikat dengan WeChat Pay dan telah mendayakan kebenaran pembayaran JSAPI. (Pembayaran JSAPI diperlukan untuk menu tersuai)

2 Cipta menu

Sebelum anda mula mencipta menu, anda perlu memahami peraturan menu tersuai WeChat.

1. Menu tersuai boleh merangkumi sehingga 3 menu peringkat pertama, dan setiap menu peringkat pertama boleh memasukkan sehingga 5 menu peringkat kedua.

2. Pihak berkuasa kawalan menu ialah akaun awam, dan penciptaan, pertanyaan, pemadaman dan operasi lain menu boleh direalisasikan melalui antara muka.

3. Jenis tindakan tindak balas menu termasuk klik (acara tekan klik), lihat (URL lompat), scancode_push (acara tolak kod imbasan), scancode_waitmsg (acara tolak kod imbasan dan timbul "menerima mesej" kotak gesaan), pic_sysphoto (muncul sistem untuk mengambil foto dan menghantar gambar), pic_photo_or_album (muncul untuk mengambil foto atau album untuk menghantar gambar), pic_weixin (muncul pengirim album WeChat), location_select (muncul pemilih lokasi geografi ), media_id (menghantar mesej), view_limited ( Lompat ke imej dan URL mesej teks).

Seterusnya, kami mula mencipta menu tersuai kami. Pertama, anda perlu mentakrifkan struktur menu yang sepadan Kod sampel adalah seperti berikut:

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;
    }
}

Struktur MenuButton ditakrifkan di sini, termasuk menu peringkat pertama dan menu peringkat kedua, dan juga termasuk menu. jenis, nama, kunci, url dll. Apabila menghidupkan objek MenuButton, anda boleh memasukkan parameter yang sepadan.

Seterusnya, kami mencipta menu tersuai melalui struktur MenuButton Kod sampel adalah seperti berikut:

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;
}

Di sini, dengan mencipta contoh MenuButton, menu peringkat pertama dan kedua-. menu tahap ditakrifkan lapisan demi lapisan Akhirnya Melalui antara muka yang sepadan, menu berjaya dibuat.

3. Menu pertanyaan

Selain mencipta menu, kami juga boleh menggunakan antara muka untuk membuat pertanyaan pada menu yang dibuat. Kod sampel adalah seperti berikut:

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;
}

Antara muka menu_get digunakan di sini untuk menanyakan menu yang dibuat.

4. Padam Menu

Jika kita perlu memadamkan menu sedia ada, kita juga boleh melakukannya melalui antara muka yang sepadan. Kod sampel adalah seperti berikut:

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. Ringkasan

Artikel ini memperkenalkan cara mencipta, bertanya dan memadam menu tersuai dalam pembangunan PHP WeChat. Saya harap ia akan membantu semua orang. Pada masa yang sama, anda perlu memberi perhatian kepada peraturan menu tersuai dan menentukan serta mencipta menu mengikut peraturan. Menu tersuai boleh membantu syarikat memberi perkhidmatan yang lebih baik kepada pengguna dan meningkatkan pengalaman pengguna.

Atas ialah kandungan terperinci Pembangunan PHP WeChat: Bagaimana untuk melaksanakan menu tersuai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn