为了账号安全,请及时绑定邮箱和手机立即绑定

我在网页上出现的结果和视屏中一样,可在微信手机端就是不出现菜单,求助,问题在哪??

MjyxwFWzRV8r4Nw_wUj51fUjfg-dzmKsMKdaweUfd7t3-GYg106H86j3Do_f3vyayfMn7sbcj-wTEhHDFh70to-1KwKpEYhYM1HT-G-izwFAVRJJ1cDsWggubCixgxJEDNEfABARBS
https://api.weixin.qq.com/cgi-bin/menu/create?access_token=MjyxwFWzRV8r4Nw_wUj51fUjfg-dzmKsMKdaweUfd7t3-GYg106H86j3Do_f3vyayfMn7sbcj-wTEhHDFh70to-1KwKpEYhYM1HT-G-izwFAVRJJ1cDsWggubCixgxJEDNEfABARBSarray(1) { ["button"]=> array(3) { [0]=> array(3) { ["name"]=> string(27) "%E8%8F%9C%E5%8D%95%E4%B8%80" ["type"]=> string(5) "click" ["key"]=> string(5) "item1" } [1]=> array(2) { ["name"]=> string(27) "%E8%8F%9C%E5%8D%95%E4%BA%8C" ["sub_button"]=> array(3) { [0]=> array(3) { ["name"]=> string(18) "%E6%AD%8C%E6%9B%B2" ["type"]=> string(5) "click" ["key"]=> string(5) "songs" } [1]=> array(3) { ["name"]=> string(18) "%E7%94%B5%E5%BD%B1" ["type"]=> string(4) "view" ["url"]=> string(20) "http://www.baidu.com" } [2]=> array(3) { ["name"]=> string(9) "%E6%AD%8C" ["type"]=> string(4) "view" ["url"]=> string(17) "http://www.qq.com" } } } [2]=> array(3) { ["name"]=> string(18) "%E5%9B%BE%E7%89%87" ["type"]=> string(4) "view" ["url"]=> string(18) "http://www.163.com" } } }{"button":[{"name":"菜单一","type":"click","key":"item1"},{"name":"菜单二","sub_button":[{"name":"歌曲","type":"click","key":"songs"},{"name":"电影","type":"view","url":"http:\/\/www.baidu.com"},{"name":"歌","type":"view","url":"http:\/\/www.qq.com"}]},{"name":"图片","type":"view","url":"http:\/\/www.163.com"}]}NULL



部分代码:

function http_curl($url,$type='get',$res='json',$arr=''){

$ch=curl_init();

curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

if($type=='post'){

curl_setopt($ch,CURLOPT_POST,1);

curl_setopt($ch,CURLOPT_POSTFIELDS,$arr);

}

$output=curl_exec($ch);

curl_close($ch);

if($res=='json'){

if(curl_errno($ch)){

return curl_error($ch);

}else{

return json_decode($output,true);

}

}

}

    

public function getWxAccessToken(){

if($_SESSION['access_token'] && $_SESSION['expire_time']>time()){

return $_SESSION['access_token'];

}else{

   $appid='wxb7a1e21ed61a90a2';

$appsecret='d4624c36b6795d1d99dcf0547af5443d';

$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$appsecret;

$res=$this->http_curl($url,'get','json');

$access_token=$res['access_token'];

$_SESSION['access_token']=$access_token;

$_SESSION['expire_time']=time()+7000;

return $access_token;

}

}

    function definedItem(){

header('Content-type: text/html; charset=utf-8');

echo $access_token=$this->getWxAccessToken();

    echo '<br />';

echo $url="https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$access_token;

$postArr=array(

  'button'=> array(

       array(

'name'=>urlencode('菜单一'),

'type'=>'click',

'key'=>'item1',

),

  

array(

'name'=>urlencode('菜单二'),

'sub_button'=>array(

array(

'name'=>urlencode('歌曲'),

'type'=>'click',

'key'=>'songs',

),

array(

'name'=>urlencode('电影'),

'type'=>'view',

'url'=>'http://www.baidu.com',

),

array(

'name'=>urlencode('歌'),

'type'=>'view',

'url'=>'http://www.qq.com',

),

),

 

),

array(

'name'=>urlencode('图片'),

'type'=>'view',

'url'=>'http://www.163.com',

),

            ),

);

echo '<hr/>';

        var_dump($postArr);

   echo '<hr/>';

        

echo $postJson=urldecode(json_encode($postArr));

$res=$this->http_curl($curl,'post','json',$postJson);

   echo '<hr/>';

var_dump($res);

}


正在回答

0 回答

function getWxAccessToken()
{
   session_start();
   //header("Content-Type:text/html;charset=utf-8");
   $time=time();
   if ($_SESSION['accessToken'] && $time<$_SESSION['expirytime']) {
       return $this->accessToken=$_SESSION['accessToken'];
   }
   $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . $this->appid . '&secret=' . $this->appsecret;
   $res = $this->http_curl($url);
   if ($res) {
       $tokenArray = json_decode($res, true);
       if ($tokenArray['access_token']) {
           $_SESSION['accessToken']=$tokenArray['access_token'];
           $_SESSION['expirytime']=time()+7000;
           return $this->accessToken = $_SESSION['accessToken'];
       }
   } else {
       return false;
   }
}

应该是token的问题,你把if ($_SESSION['accessToken'] && $time<$_SESSION['expirytime']) {
       return $this->accessToken=$_SESSION['accessToken'];
   }这句给注释掉,先不用session,通过http请求获取token就可以了

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我在网页上出现的结果和视屏中一样,可在微信手机端就是不出现菜单,求助,问题在哪??

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号