You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
132 lines
4.4 KiB
132 lines
4.4 KiB
<?php
|
|
require(ROOT_PATH . 'mobile/include/lib_weixintong.php');
|
|
|
|
$time = time();
|
|
$access_token = access_token($db);
|
|
$url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$access_token;
|
|
$sql_two="SELECT wxid FROM " . $GLOBALS['ecs']->table('users') . " WHERE user_id = '$up_uid'";
|
|
$wxid=$GLOBALS['db']->GetOne($sql_two);
|
|
$w_title="您有新的下线加入,敬请关注!";
|
|
$w_description="下线及下线用户的消费您都将有分成。";
|
|
$config['site_url']="http://".$_SERVER['HTTP_HOST']."/";
|
|
$site_url=$config['site_url'];
|
|
$w_url=$site_url."mobile/distribute.php?act=fenxiao1&wxid=".$wxid;
|
|
$w_picurl="";
|
|
$post_msg = '{
|
|
"touser":"'.$wxid.'",
|
|
"msgtype":"news",
|
|
"news":{
|
|
"articles": [
|
|
{
|
|
"title":"'.$w_title.'",
|
|
"description":"'.$w_description.'",
|
|
"url":"'.$w_url.'",
|
|
"picurl":"'.$w_picurl.'"
|
|
}
|
|
]
|
|
}
|
|
}';
|
|
$ret_json = curl_grab_page($url, $post_msg);
|
|
$ret = json_decode($ret_json);
|
|
if($ret->errmsg != 'ok')
|
|
{
|
|
$access_token = new_access_token($db);
|
|
$url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$access_token;
|
|
$ret_json = curl_grab_page($url, $post_msg);
|
|
$ret = json_decode($ret_json);
|
|
}
|
|
|
|
function new_access_token($db)
|
|
{
|
|
$time = time();
|
|
$ret = $db->getRow("SELECT * FROM ". $GLOBALS['ecs']->table('weixin_config') ." WHERE `id` = 1");
|
|
$appid = $ret['appid'];
|
|
$appsecret = $ret['appsecret'];
|
|
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
|
|
$ret_json = curl_get_contents($url);
|
|
$ret = json_decode($ret_json);
|
|
if($ret->access_token)
|
|
{
|
|
$db->query("UPDATE ". $GLOBALS['ecs']->table('weixin_config') ." SET `access_token` = '$ret->access_token',`dateline` = '$time' WHERE `id` =1;");
|
|
}
|
|
return $ret->access_token;
|
|
}
|
|
function access_token($db)
|
|
{
|
|
$ret = $db->getRow("SELECT * FROM ". $GLOBALS['ecs']->table('weixin_config') ." WHERE `id` = 1");
|
|
$appid = $ret['appid'];
|
|
$appsecret = $ret['appsecret'];
|
|
$access_token = $ret['access_token'];
|
|
$dateline = $ret['dateline'];
|
|
$time = time();
|
|
if(($time - $dateline) >= 7200)
|
|
{
|
|
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
|
|
$ret_json = curl_get_contents($url);
|
|
$ret = json_decode($ret_json);
|
|
if($ret->access_token)
|
|
{
|
|
$db->query("UPDATE ". $GLOBALS['ecs']->table('weixin_config') ." SET `access_token` = '$ret->access_token',`dateline` = '$time' WHERE `id` =1;");
|
|
return $ret->access_token;
|
|
}
|
|
}
|
|
elseif(empty($access_token))
|
|
{
|
|
$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$appsecret";
|
|
$ret_json = curl_get_contents($url);
|
|
$ret = json_decode($ret_json);
|
|
if($ret->access_token)
|
|
{
|
|
$db->query("UPDATE ". $GLOBALS['ecs']->table('weixin_config') ." SET `access_token` = '$ret->access_token',`dateline` = '$time' WHERE `id` =1;");
|
|
return $ret->access_token;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return $access_token;
|
|
}
|
|
}
|
|
function curl_get_contents($url)
|
|
{
|
|
$ch = curl_init();
|
|
curl_setopt($ch, CURLOPT_URL, $url);
|
|
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
|
|
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
|
|
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
|
|
$r = curl_exec($ch);
|
|
curl_close($ch);
|
|
return $r;
|
|
}
|
|
function curl_grab_page($url,$data,$proxy='',$proxystatus='',$ref_url='')
|
|
{
|
|
$ch = curl_init();
|
|
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
|
|
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
if ($proxystatus == 'true')
|
|
{
|
|
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
|
|
curl_setopt($ch, CURLOPT_PROXY, $proxy);
|
|
}
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
|
|
curl_setopt($ch, CURLOPT_URL, $url);
|
|
if(!empty($ref_url))
|
|
{
|
|
curl_setopt($ch, CURLOPT_HEADER, TRUE);
|
|
curl_setopt($ch, CURLOPT_REFERER, $ref_url);
|
|
}
|
|
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
|
|
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
|
|
curl_setopt($ch, CURLOPT_POST, TRUE);
|
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
|
ob_start();
|
|
return curl_exec ($ch);
|
|
ob_end_clean();
|
|
curl_close ($ch);
|
|
unset($ch);
|
|
}
|
|
?>
|