微信自定义菜单的创建/查询/取消php示例代码
微信公众帐号服务号可以使用自定义菜单功能。之前在创建菜单时一直失败,原因是$data格式一直没有传正确,后来终于解决了。这里先记录下顺便封装了一个类,便于自定义菜单的管理。此类仅仅是自定义菜单的管理类,并未涉及微信自定义回复和菜单事件的代码。
代码如下
/**
*@authorLSH2013-09-06
*
*微信自定义菜单的创建|查询|取消
*/
classweixinMenu{
publicstatic$appid=null;//申请得到的appid
publicstatic$secret=null;//申请得到的secret
publicstatic$getToken="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
publicstatic$createMenu="https://api.weixin.qq.com/cgi-bin/menu/create?access_token=";
publicstatic$selMenu="https://api.weixin.qq.com/cgi-bin/menu/get?access_token=";
publicstatic$delMenu="https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=";
publicstatic$opt=array(
CURLOPT_SSL_VERIFYPEER=>false,
CURLOPT_SSL_VERIFYHOST=>false,
CURLOPT_USERAGENT=>'Mozilla/5.0(compatible;MSIE5.01;WindowsNT5.0)',
CURLOPT_FOLLOWLOCATION=>1,
CURLOPT_AUTOREFERER=>1,
CURLOPT_RETURNTRANSFER=>true
);
public$ACCESS_TOKEN=null;
/**
*创建菜单
*/
publicfunctioncreate()
{
$this->token();
$strMeau='{
"button":[
{
"type":"click",
"name":"菜单左",
"key":"V_MENU_LEFT"
},
{
"type":"click",
"name":"菜单中",
"key":"V_MENU_CENTER"
},
{
"type":"click",
"name":"菜单右",
"key":"V_MENU_RIGHT"
}]
}';
$ret=$this->HttpPost(self::$createMenu.$this->ACCESS_TOKEN,self::$opt,$strMeau);
echo$ret;
}
/**
*查询菜单
*/
publicfunctionsel()
{
$this->token();
$ret=$this->HttpGet(self::$selMenu.$this->ACCESS_TOKEN,self::$opt);
echo$ret;
}
/**
*取消菜单
*/
publicfunctiondel()
{
$this->token();
$ret=$this->HttpGet(self::$delMenu.$this->ACCESS_TOKEN,self::$opt);
echo$ret;
}
/**
*获取token
*/
privatefunctiontoken()
{
$tokenUrl=self::$getToken."&appid=".self::$appid."&secret=".self::$secret;
$ret=$this->HttpGet($tokenUrl,self::$opt);
$arrRet=json_decode($ret,true);
$this->ACCESS_TOKEN=$arrRet['access_token'];
}
/**
*POST模式
*@paramstring$urlpost的地址
*@paramarray$optpost选项
*@paramarray$post_datapost数据
*@returnmixed
*/
privatefunctionHttpPost($url,$opt=array(),$post_data)
{
$setopt=array(
CURLOPT_HEADER=>0,
CURLOPT_RETURNTRANSFER=>1,
CURLOPT_URL=>$url,
CURLOPT_CUSTOMREQUEST=>'POST',
CURLOPT_POST=>1,
CURLOPT_POSTFIELDS=>$post_data,
);
if(!empty($opt)){
foreach($optas$key=>$value){
$setopt[$key]=$value;
}
}
$curl=curl_init($url);
foreach($setoptas$key=>$value){
curl_setopt($curl,$key,$value);
}
$responseText=curl_exec($curl);
curl_close($curl);
return$responseText;
}
/**
*GET方式
*@paramstinrg$urlGET的url
*@paramarray$optGET的选项
*@returnmixed
*/
privatefunctionHttpGet($url,$opt=array())
{
$setopt=array(
CURLOPT_HEADER=>0,
CURLOPT_RETURNTRANSFER=>1,
CURLOPT_URL=>$url
);
if(!empty($opt)){
foreach($optas$key=>$value){
$setopt[$key]=$value;
}
}
$curl=curl_init($url);
foreach($setoptas$key=>$value){
curl_setopt($curl,$key,$value);
}
$responseText=curl_exec($curl);
curl_close($curl);
return$responseText;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。