一 :微信公众号开发基本配置(与服务器建立连接)
1:设置与开发/基本配置
开发者密码/服务器IP白名单/服务器配置
2:公众号设置
功能设置/js接口安全域名
二:获取 access_token
access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。
//获取token
function access_token()
{
$ctl =& get_instance();
$select = "*";
$table = "access_token";
$sql = "where token_del = 1 and token_qudao = 'weixin' ";
$tokenDataArr = $ctl->a_test_m->search_query($select,$table,$sql);
//如果token不存在就存入数据库
if (empty($tokenDataArr)){
$getAccessTokenUrl = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s';
$getAccessTokenUrl = sprintf($getAccessTokenUrl,set_appId(),set_appsecret());
//获取token
$result = set_https_request($getAccessTokenUrl);
//获取token数组
$arrResult = json_decode($result,true);
//获取token
$access_token = $arrResult['access_token'];
$table = "access_token";
$data["token_value"] = $access_token;
$data["token_time"] = time();
$data["token_del"] = 1;
$data["token_qudao"] = "weixin";
$ctl->a_test_m->increase_public($table,$data);
}
if (time() - $tokenDataArr[0]["token_time"] > 7000){
$getAccessTokenUrl = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s';
$getAccessTokenUrl = sprintf($getAccessTokenUrl,set_appId(),set_appsecret());
//获取token
$result = set_https_request($getAccessTokenUrl);
//获取token数组
$arrResult = json_decode($result,true);
//获取token
$access_token = $arrResult['access_token'];
$table = "access_token";
$data["token_value"] = $access_token;
$data["token_time"] = time();
$data["token_del"] = 1;
$data["token_qudao"] = "weixin";
$sql = " token_qudao = 'weixin' ";
$ctl->a_test_m->edit_public($table,$data,$sql);
} else {
$access_token = $tokenDataArr[0]["token_value"];
}
return $access_token;
}
链接转换
//链接转换
function set_https_request($url,$data = null){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
return $output;
}
这是基于CI框架获取token的代码 需要调整!!
二 : 推送图文消息类型
主要包括纯文本信息、图文结合信息、视频信息、语音信息四类