前提条件,获取unionid,公众号需经过认证。
公众号如何获取unionid
1 网页接口授权



2 添加白名单


3 在公众号菜单中,添加一个子菜单,配置为网页链接

网页地址的格式如下
其中,appid,为你的公众号的appid,转发地址,redirect_uri为一个你可以控制的url地址,需经过urlcode,可以在https://i.csdn.net/#/uc/profile类似的工具里面做转化。
这个redirect_uri所在的地址,就是上面你所配置的授权域名所在的地址,也是网页白名单所在的地址
4 接下来我们看公众号,如何获取用户unionId,
在你的redirect_uri所指向的网页中,你的代码应该是这样的
<?php include("UserManager.php"); ?>
<?php
$code = $_GET["code"];
function openid($code){
$secret = "yoursecret";
$appid = "yourappid";
//$appid = "wxcba3f82c9a02d6f6";
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$secret."&code=".$code."&grant_type=authorization_code";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_TIMEOUT,30);
$content = curl_exec($ch);
$status = (int)curl_getinfo($ch,CURLINFO_HTTP_CODE);
if ($status == 404) {
return $status;
}
$obj = json_decode($content,true);
$manager = new UserManager;
//$token_file = fopen("ssh/token.txt", "r") or die("Unable to open file!");
$access_token = $manager->getFuwuhaoAccessToken($appid);
if ($access_token == ""){
curl_close($ch);
return "token not found";
}
//$access_token = fgets($token_file);
//fclose($token_file);
//return 'code:'.$code.'openid:'.$obj["openid"].'token_file:'.$access_token;
$openid = $obj["openid"];
//echo "openid:".$openid;
$url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=".$access_token."&openid=".$openid."&lang=zh_CN";
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,1);
$content = curl_exec($ch);
$status = (int)curl_getinfo($ch,CURLINFO_HTTP_CODE);
if ($status == 404){
curl_close($ch);
return $status;
}
curl_close($ch);
$objunionid = json_decode($content,true);
$unionid = $objunionid["unionid"];
//echo "unionid:".$unionid." appid:".$appid." openid:".$openid;
$manager->updatelastonlineOfFuwuhao($appid,$unionid,$openid);
return 'openid:'.$obj["openid"].' token_file:'.$access_token.' unionid:'.$unionid;
return var_dump($content);
// return json_decode($content,true);
}
openid($code);
echo "<h1>绑定成功</h1>";
?>
appid和secret在哪里呢?


你可能发现了,在里面有个accesstoken,这个怎么获取呢?
直接给你代码
<?php
$ch = curl_init(); //初始化一个CURL对象
$appid = "your appid";
$secret = "your开发秘钥";
curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret);//设置你所需要抓取的URL
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设置curl参数,要求结果是否
输出到屏幕上,为true的时候是不返回到网页中,假设上面的0换成1的话,那么接下来的$data就需要echo一下。
$data = json_decode(curl_exec($ch));
if($data->access_token){
echo "我就是access_token".$data->access_token;
}
?>
更多咨询,可以填充表单



6164

被折叠的 条评论
为什么被折叠?



