第一步: 注册一个公众号。
第二步:买一个域名。
第三步:
<?php
define('APPID', 'wxae5eac671b6ce322');
define('APPSECRET','99c80bb2bccb8eb631179ceb42ca474c');
define('TOKEN_FILE','access_token.txt');
$access_token=access_token();
echo $access_token;
//返回access_token
function access_token(){
//判断文件是否存在
if(is_file(TOKEN_FILE)){
//读取文件
$str=file_get_contents(TOKEN_FILE);
$arr=json_decode($str,true);
//判断是否过期
if(time() - $arr['create_time']>$arr['expires_in']-200){
return getNewAccess_token();
}else{
return $arr['access_token'];
}
}else{
return getNewAccess_token();
}
}
//得到新的access_token
function getNewAccess_token(){
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" .APPID. "&SECRET=" .APPSECRET;
//创建一个新cURL资源
$ch=curl_init();
//设置URL和相对应的选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
//抓取URL并把它传递给浏览器
$str=curl_exec($ch);
//关闭cURL资源,并且释放系统资源
curl_close($ch);
//处理$str
//将str->数组
$arr=json_decode($str,true);
//添加新元素
$arr['create_time']=time();
//数组->json
$str=json_encode($arr);
//保存access_token
file_put_contents(TOKEN_FILE, $str);
return $arr['access_token'];
}
?>
上传到域名上测试。
access_token
<?php
define('APPID', 'wxae5eac671b6ce322');
define('APPSECRET','99c80bb2bccb8eb631179ceb42ca474c');
define('TOKEN_FILE','access_token.txt');
$access_token=access_token();
echo $access_token;
//返回access_token
function access_token(){
//判断文件是否存在
if(is_file(TOKEN_FILE)){
//读取文件
$str=file_get_contents(TOKEN_FILE);
$arr=json_decode($str,true);
//判断是否过期
if(time() - $arr['create_time']>$arr['expires_in']-200){
return getNewAccess_token();
}else{
return $arr['access_token'];
}
}else{
return getNewAccess_token();
}
}
//得到新的access_token
function getNewAccess_token(){
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" .APPID. "&SECRET=" .APPSECRET;
//创建一个新cURL资源
$ch=curl_init();
//设置URL和相对应的选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_SSLVERSION, 1);
//抓取URL并把它传递给浏览器
$str=curl_exec($ch);
//关闭cURL资源,并且释放系统资源
curl_close($ch);
//处理$str
//将str->数组
$arr=json_decode($str,true);
//添加新元素
$arr['create_time']=time();
//数组->json
$str=json_encode($arr);
//保存access_token
file_put_contents(TOKEN_FILE, $str);
return $arr['access_token'];
}
?>
menu.php
<?php
header('content-type:text/html;charset=utf-8');
//创建菜单
include 'access_token.php';
$access_token=access_token();
$url="http://api.weixin.qq.com/cgi-bin/menu/create?access_token=$access_token";
$menu=<<<MENU
{
"button":[
{
"type":"click",
"name":"今日歌曲",
"key":"V1001_TODAY_MUSIC"
},
{
"name":"菜单",
"sub_button":[
{
"type":"view",
"name":"搜索",
"url":"http://www.soso.com/"
},
{
"type":"miniprogram",
"name":"wxa",
"url":"http://mp.weixin.qq.com",
},
{
"type":"click",
"name":"赞一下我们",
"key":"V1001_GOOD"
}]
}]
}
MENU;
$arr=json_decode($menu,true);
echo "<pre>";
print_r($arr);
echo "</pre>";
// $ch=curl_init();
// curl_setopt($ch, CURLOPT_URL, $url);
// curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// curl_setopt($ch, CURLOPT_HEADER, 0);
// curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
// curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
// curl_setopt($ch, CURLOPT_SSLVERSION, 1);
// curl_setopt($ch, CURLOPT_POST, true);
// curl_setopt($ch, CURLOPT_POSTFIELDS, $menu);
// $str=curl_exec($ch);
// echo $str;
$arr1=array(
array('type'=>'click','name'=>'今日歌曲','id'=>1,'pid'=>0),
array('name'=>'菜单','id'=>2,'pid'=>0),
array('type'=>'view','name'=>'搜索','url'=>'www.baidu.com','id'=>3,'pid'=>1),
array('type'=>'click','name'=>'赞一下','id'=>4,'pid'=>1),
);
$arr2=$arr1;
foreach ($arr1 as $k1 => $row1) {
foreach ($arr2 as $k2 => $row2) {
if($row1['id']==$row2['pid']){
$arr1[$k1]['sub_button'][]=$row2;
unset($arr1[$k2]);
}
}
}
echo "<pre>";
print_r($arr1);
echo "</pre>";
$arr=array();
$arr['button']=$arr1;
echo "<pre>";
print_r($arr);
echo "</pre>";
?>