生成微信公众号二维码以及获取用户的信息(下)
发布时间:2017-06-17 | 发布者: 东东工作室 | 浏览次数: 次第二个页面show.php 代码:
<?php
header("Content-type: text/html; charset=utf-8");
/*if(empty($_SESSION['code'])){
header("Location:http://wx.dongdongliu.com/weixin/fn_wx_login.php");
}else{
print_r($_SESSION['code']);
} */
$appid = "公众号appid";
$secret = "公众号secret";
$code = $_GET["code"];
$get_token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code';
$weixin = file_get_contents($get_token_url);
$jsondecode = json_decode($weixin); //对JSON格式的字符串进行编码
$array = get_object_vars($jsondecode);//转换成数组
$openid = $array['openid'];//输出openid
$access_token = $array['access_token'];//输出用户个人的access_token
//$refresh_token = $array['refresh_token'];
//以下是微信公众号的信息
$rs=file_get_contents('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$appid.'&secret='.$secret);
//返回结果格式{"access_token":"ACCESS_TOKEN","expires_in":7200}
$arr=json_decode($rs,true);
//以下是微信公众号的access_token
$access_token1=$arr['access_token'];
function https_post($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);
curl_close($curl);
return $output;
}
//临时
$qrcode = '{"expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 10000}}}';
//永久
//$qrcode = '{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 1000}}}';
$url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=$access_token1";
//var_dump($url);
//echo"您的微信图像:"."<img src='$url' width='100px'/>"."<br/>";
$result = https_post($url,$qrcode);
// var_dump($result);
$jsoninfo = json_decode($result, true);
$ticket = $jsoninfo["ticket"];
$imgurl='https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket='.$ticket;
echo"微信公众号二维码:"."<img src='$imgurl' width='100px'/>"."<br/>";
//以上是微信公众号的信息
//以下是用户的信息
$info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token.'&openid='.$opendid.'<=zh_CN';
$info = json_decode(file_get_contents($info_url));
$nickname = $data['name'] = $info->nickname;
$headimgurl = $data['image'] = $info->headimgurl;
$sex = $data['sex'] = $info->sex;
$province = $data['province'] = $info->province;
$city = $data['city'] = $info->city;
$headimgurl = $data['image'] = $info->headimgurl;
$db_host = 'localhost'; //数据库主机名称,一般都为localhost
$db_user = 'root'; //数据库用户帐号,根据个人情况而定
$db_passw = 'shhc@2017root'; //数据库用户密码,根据个人情况而定
$db_name = 'weixin'; //数据库具体名称,以刚才创建的数据库为准
//连接数据库
$conn = mysql_connect($db_host,$db_user,$db_passw) or die ('数据库连接失败!</br>错误原因:'.mysql_error());
//选定数据库
mysql_select_db($db_name,$conn) or die('数据库选定失败1!</br>错误原因:'.mysql_error());
//设置字符集,如utf8和gbk等,根据数据库的字符集而定
mysql_query("set names 'utf8'");
//var_dump($conn);
//echo"$code";
$sql="select * from dede_diyform1 where openid = '$openid '";
//var_dump($sql);
$result=mysql_query($sql);
// var_dump($result);
$num=mysql_num_rows($result);
//var_dump($num);
if($num == 0){
$sql1="insert into dede_diyform1 (code,openid,nickname,sex,province,city,headimgurl) values ('$code','$openid','$nickname','$sex','$province','$city','$headimgurl')";
//echo "$sql1";
mysql_query($sql1);
}else{
$sql1="update dede_diyform1 set code='$code' where openid='$openid'";
//echo "$sql1";
mysql_query($sql1);
}
//echo"$openid";
//exit();
if(empty($openid)) {
$sql="select * from dede_diyform1 where code = '$code'";
$result=mysql_query($sql);
//var_dump($result);
//echo"<br/>";
//$row = mysql_fetch_array($result);
$row = mysql_fetch_array($result);
echo "您的微信昵称:";
echo $row['nickname'];
echo"<br/>";
$headimgurl = $row['headimgurl'];
echo"您的微信图像:"."<img src='$headimgurl' width='100px'/>"."<br/>";
}else{
echo"您的微信昵称:"."$nickname"."<br/>";
echo"您的微信图像:"."<img src='$headimgurl' width='100px'/>"."<br/>";
}
?>
<style type="text/css">
*{font-size:40px;}
</style>
<script type="text/javascript">
onload=function(){
setInterval(go, 1000);
};
var x=2; //利用了全局变量来执行
function go(){
x--;
if(x>0){
document.getElementById("sp").innerHTML=x; //每次设置的x的值都不一样了。
}else{
location.href='http://www.dongdongliu.com/2016/love.html';
}
}
</script>
人家都是卖代码,依我看没有必要,本着资源共享、代码开源的精神与大家共享乐趣,本站本着:“一切为了服务大众,为了服务大众的一切”而坚持,还请亲们多多支持,多来访问本站的内容,本站承诺一切资源免费共享,万分感谢大家的支持!!!
转载请标注:东东工作室——生成微信公众号二维码以及获取用户的信息(下)