验证token(weixin/wx.php)
<?php
function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$echostr=$_GET["echostr"];
$token = "xxx";(填自己的)
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
echo $echostr;
return true;
}else{
return false;
}
}
checkSignature();
?>
发送请求,获取access_token
<?php
//主动像微信服务器发送请求
session_start();
class WeiXin{
//属性
private $appid="wxd1cf86532ebf744d";
private $secret="668bac5f2211050f0aaaeb8add28c1b9";
//方法
//请求access_token
function getAccessToken(){
if($_SESSION['access_token']&&$_SESSION['expire_time']>time()){
//如果access_token在session并未过期
return $_SESSION['access_token'];
}else{
$url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$this->appid}&secret={$this->secret}";
//return $this->httpGet($url);
$json=$this->httpGet($url);
//将json转化为对象 //加,ture为数组
$obj=json_decode($json);
$access_token= $obj->access_token;
$_SESSION['access_token'] = $access_token;
$_SESSION['expire_time'] = time()+7000;
return $access_token;
}
}
function httpGet($url){
$curl=curl_init();
curl_setopt($curl, CURLOPT_URL,$url);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
function httpPost($url,$data){
$curl=curl_init();
curl_setopt($curl, CURLOPT_POST,true);
curl_setopt($curl ,CURLOPT_URL,$url);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}
}
$weixin=new WeiXin();
echo $access_token= $weixin-> getAccessToken();
?>