menu2.php,menu.php · Admin/微信公众号接口单文件版 - Gitee.com

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

$appid='xxxxx';

$appsecret='xxxxx';

$wx = new WxService($appid,$appsecret);

$data[0]['name'] = array('菜单1','#');

$data[1]['name'] = array('菜单2','#');

$data[2]['name'] = array('菜单3','#');

$data[0]['sub_button'][0] = array('菜单1-1','http://www.baidu.com');

$data[0]['sub_button'][1] = array('菜单1-2','http://www.baidu.com');

$data[1]['sub_button'][0] = array('菜单2-1','http://www.baidu.com');

$data[1]['sub_button'][1] = array('菜单2-2','http://www.baidu.com');

$data[2]['sub_button'][0] = array('菜单3-1','http://www.baidu.com');

$data[2]['sub_button'][1] = array('菜单3-2','http://www.baidu.com');

$result = $wx->menuCreate($data);

if($result['errcode']==0){

echo '

创建菜单成功!

';

}else{

echo '

创建菜单失败:'.$result['errmsg'].'

';

}

class WxService{

protected $appid;

protected $appsecret;

protected $templateId;

protected $token = null;

public $data = null;

public function __construct($appid, $appsecret)

{

$this->appid = $appid;

$this->appsecret = $appsecret;

$this->token = $this->getToken();

}

public function menuCreate($data)

{

$url = 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token='.$this->getToken();

$menu = array();

$i=0;

foreach ($data as $item){

$menu['button'][$i]['name'] = $item['name'][0];

if($item['sub_button']){

$j=0;

foreach ($item['sub_button'] as $sub){

$menu['button'][$i]['sub_button'][$j]['type'] = 'view';

$menu['button'][$i]['sub_button'][$j]['name'] = $sub[0];

$menu['button'][$i]['sub_button'][$j]['url'] = $sub[1];

$j++;

}

}else{

$menu['button'][$i]['type'] = 'view';

$menu['button'][$i]['url'] = $item['name'][1];

}

$i++;

}

$data = self::xjson_encode($menu);

$data = str_replace('\/','/',$data);

$result = self::curlPost($url,$data);

return json_decode($result,true);

}

function getToken() {

if($this->token) return $this->token;

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

$res = self::curlGet($url);

$result = json_decode($res, true);

if($result['errmsg']){

echo $res;exit();

}

return $result['access_token'];

}

public static function curlGet($url = '', $options = array())

{

$ch = curl_init($url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_TIMEOUT, 30);

if (!empty($options)) {

curl_setopt_array($ch, $options);

}

//https请求 不验证证书和host

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

$data = curl_exec($ch);

curl_close($ch);

return $data;

}

public static function curlPost($url = '', $postData = '', $options = array())

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);

curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置cURL允许执行的最长秒数

if (!empty($options)) {

curl_setopt_array($ch, $options);

}

//https请求 不验证证书和host

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

$data = curl_exec($ch);

if($data === false)

{

echo 'Curl error: ' . curl_error($ch);exit();

}

curl_close($ch);

return $data;

}

public static function xjson_encode($data)

{

if(version_compare(PHP_VERSION,'5.4.0','

$str = json_encode($data);

$str = preg_replace_callback("#\\\u([0-9a-f]{4})#i",function($matchs){

return iconv('UCS-2BE', 'UTF-8', pack('H4', $matchs[1]));

},$str);

return $str;

}

return json_encode($data, JSON_UNESCAPED_UNICODE);

}

}

?>

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值