电车动漫,免费看污网站,黄色免费在线观看网站,天天色综合久久

微信公眾號(hào)開發(fā)之創(chuàng)建自定義菜單數(shù)據(jù)拼接

善微科技 2019 03月06日 發(fā)布

在開啟長(zhǎng)沙微信公眾號(hào)開發(fā)者模式以后,在微信公眾號(hào)平臺(tái)設(shè)置的自動(dòng)回復(fù)和自定義菜單會(huì)失效,所以我們要進(jìn)行自定義

當(dāng)然, 產(chǎn)品會(huì)讓你將這個(gè)功能開發(fā)成后臺(tái)功能,想什么時(shí)候更改就什么時(shí)候更改,多酸爽 

自定義菜單最多包括3個(gè)一級(jí)菜單,每個(gè)一級(jí)菜單最多包含5個(gè)二級(jí)菜單,自定義菜單的接口還包括了可實(shí)現(xiàn)10種類型按鈕

我們項(xiàng)目基本用于跳轉(zhuǎn)頁(yè)面,不做推送啥的,所以只用view:跳轉(zhuǎn)URL用戶點(diǎn)擊view類型按鈕后,微信客戶端將會(huì)打開開發(fā)者在按鈕中填寫的網(wǎng)頁(yè)URL

微信的文檔也很酸爽,到底用json還是數(shù)組,奇葩啊

{
    "button":[
     {
         "type":"view",
          "name":"官方網(wǎng)站",
          "url":"https://qq52o.me"
      },
      {
          "name":"技術(shù)筆記",
           "sub_button":[
           {
               "type":"view",
               "name":"PHP",
               "url":"https://qq52o.me/category/php"
            },
           {
               "type":"view",
               "name":"Python",
               "url":"https://qq52o.me/category/python"
            },
           {
               "type":"view",
               "name":"Linux",
               "url":"https://qq52o.me/category/linux"
            }]
       }]
 }

將就看吧,二級(jí)菜單的一級(jí)菜單只需要顯示名稱,多了一個(gè)sub_button數(shù)組

跳轉(zhuǎn)頁(yè)面的參數(shù)也是唯一的:typenameurl

后臺(tái)給設(shè)置一個(gè)CRUD操作就行,添加需要顯示的名稱,URL,如果是二級(jí)的話,還要選擇關(guān)聯(lián)一級(jí)菜單

// 0 表示為一級(jí)菜單$data = WechatMenu::find()->where(['first_id' => 0])->asArray()->all();$secMenuData = [];foreach ($data as $key => $val){
        $secMenuData[$key]['name'] = $val['name'];
        // 有二級(jí)菜單的時(shí)候 一級(jí)不需要鏈接 留空
        if(empty($val['url'])) {
            // 找二級(jí)菜單的信息
            $son = WechatMenu::find()->where(['first_id' => $val['id']])->asArray()->all();
            if(!empty($son)){
                foreach ($son as $k =>  $value) {
                    $secMenuData[$key]['sub_button'][] = [
                        'type' => 'view',
                        'url' => $value['url'],
                        'name' => $value['name'],
                    ];
                }
            }
        }else{
            $secMenuData[$key]['type'] = 'view';
            $secMenuData[$key]['url'] = $val['url'];
        }}

得到數(shù)據(jù)以后,轉(zhuǎn)一下json格式,這里要注意一下的是

需要加上json_encode的第二個(gè)參數(shù)JSON_UNESCAPED_UNICODE

不然會(huì)提示errcode":40033,"errmsg":"invalid charset. please check your request, if include uxxxx will create錯(cuò)誤

原因是把中文自動(dòng)進(jìn)行了unicode編碼

還要注意外面還有一個(gè)button,我們?cè)龠M(jìn)行拼接

rsort($secMenuData);$secMenuData = ['button'=>$secMenuData];$menuJson = json_encode($secMenuData,JSON_UNESCAPED_UNICODE);//$menuJson = "{"button":".$secMenuData."}";$wechat = new WeChat(['appId'=>$appid,'appSecret' => $appKey]);$data = $wechat->setWeChatMenu($menuJson);if($data['errcode'] == 0){
    Yii::$app->session->setFlash('success','應(yīng)用微信成功!');
    return $this->redirect(['index']);}else{
    Yii::$app->session->setFlash('error',$data['errmsg'].'請(qǐng)截圖聯(lián)系技術(shù)人員!');
    return $this->redirect(['index']);}

轉(zhuǎn)義是因?yàn)槲抑坝玫膯我?hào),他提示我{"errcode":40016,"errmsg":"invalid button size"},轉(zhuǎn)義之后就正常了

不想拼接的話就在之前拼接為數(shù)組,一起進(jìn)行json_encode就ok了

然后就調(diào)用定義的設(shè)置微信自定義菜單的方法就ok了


如沒特殊注明,文章均為善微網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來自http://www.qhfmy.com/news/476.html
相關(guān)標(biāo)簽
相關(guān)新聞

湖南省文化和旅游廳2024年湖南文化旅游主流媒體及商業(yè)門戶網(wǎng)站推廣傳播項(xiàng)目公開招標(biāo)公告

湖南省文化和旅游廳 的2024年湖南文化旅游主流媒體及商業(yè)門戶網(wǎng)站推廣傳播 進(jìn)行...

日期:2024-10-17 瀏覽次數(shù):1348

搬家下單小程序開發(fā)方案

搬家下單小程序旨在為用戶提供一站式搬家服務(wù)解決方案。它將搬家過程中的各項(xiàng)服務(wù)整合...

日期:2023-11-27 瀏覽次數(shù):90146

產(chǎn)品設(shè)計(jì)師從哪里獲得靈感?

學(xué)習(xí)設(shè)計(jì)酷炫的東西來給人們留下深刻印象的工具很容易。 ...

日期:2023-10-14 瀏覽次數(shù):95116

長(zhǎng)沙宇立電氣有限公司官網(wǎng)上線

長(zhǎng)沙宇立電氣有限公司是專業(yè)開發(fā)工業(yè)自動(dòng)化控制系統(tǒng)、過程控制儀表以及機(jī)電一體化產(chǎn)品...

日期:2023-10-14 瀏覽次數(shù):95018

DragGAN:人工智能驅(qū)動(dòng)的圖像編輯工具,讓編輯圖像變得簡(jiǎn)單

DragGAN 是馬克斯普朗克研究所開發(fā)的一種新的 AI 工具,允許用戶通過幾次...

日期:2023-05-24 瀏覽次數(shù):203292