//获取access_token并更新
function access_token(){
$wxconf = Db::name('wxconfig')->where('id',1)->find();
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$wxconf['appid']."&secret=".$wxconf['appsecret'];
$access_token = json_decode(http_get($url),true);
return Db::name('wxconfig')->where('id',1)->update(['access_token' => $access_token['access_token'],'expire'=>time() + 7100]);
}
//创建微信菜单
function createmenu(){
$wxconf = Db::name('wxconfig')->where('id',1)->find();
$url = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$wxconf['access_token'];
//查询菜单
$list = generateTrees(Db::name('wxmenu')->select());
$data = array('button'=>$list);
// 注意设置菜单发送json数据
return $result = https_post($url,json_encode($data,JSON_UNESCAPED_UNICODE));
}
function https_post($url,$data){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
if (curl_errno($curl)) {
return 'Errno'.curl_error($curl);
}
curl_close($curl);
return $result;
}
function http_get($url){
$oCurl = curl_init();
if(stripos($url,"https://")!==FALSE){
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($oCurl, CURLOPT_SSLVERSION, 1); //CURL_SSLVERSION_TLSv1
}
curl_setopt($oCurl, CURLOPT_URL, $url);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );
$sContent = curl_exec($oCurl);
$aStatus = curl_getinfo($oCurl);
curl_close($oCurl);
if(intval($aStatus["http_code"])==200){
return $sContent;
}else{
return false;
}
}
//生成微信提交格式菜单
function generateTrees($items = array()) {
$tree = array();
if($items) {
$newitems = array();
foreach ($items as $v) {
$newitems[$v['id']] = $v;
}
foreach($newitems as $item) {
if(isset($newitems[$item['pid']])){
unset($newitems[$item['pid']]['type']);
unset($newitems[$item['pid']]['key']);
unset($newitems[$item['pid']]['url']);
unset($newitems[$item['id']]['id']);
unset($newitems[$item['id']]['pid']);
if($newitems[$item['id']]['type'] == 'view') {
$newitems[$item['id']]['url'] = $newitems[$item['id']]['key'];
unset($newitems[$item['id']]['key']);
}
$newitems[$item['pid']]['sub_button'][] = &$newitems[$item['id']];
}else{
unset($newitems[$item['id']]['id']);
unset($newitems[$item['id']]['pid']);
if($newitems[$item['id']]['type'] == 'view') {
$newitems[$item['id']]['url'] = $newitems[$item['id']]['key'];
unset($newitems[$item['id']]['key']);
}
$tree[] = &$newitems[$item['id']];
}
}
}
return $tree;
}