2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > 微信公众号开发获取openID以及用户详细信息 超详细步骤 亲测开发

微信公众号开发获取openID以及用户详细信息 超详细步骤 亲测开发

时间:2020-01-08 03:51:32

相关推荐

微信公众号开发获取openID以及用户详细信息 超详细步骤 亲测开发

好久没有发过博文了,恰好这两天做了一个关于微信公众号开发的东东,拿出来和大家分享一下。

需要做一套微信签到、抽奖系统,我要在后台存储微信用户的相关信息,openIDNickname之类的信息。在开发前有一点准备工作,先去授权权限,在权限表里进行设置,如图:

填写这个网站地址的时候一定要注意填写域名路径,没有http头,就是你的域名而已,在该域名下的所有页面都可访问到,被授权。

好了初期的准备工作做好了,下来填写公众测试号的一些信息。

填写你的接口信息:

这里的url须填写你的接口地址,(在我下面的代码里调用valid()方法),在代码里设置一个token,和此处你填写的token保持一致。不然你会发现总是设置失败。

接下来就是源码,直接上代码吧:

<?phpdefine("TOKEN", "shiva");class Wechatsign extends Back_Controller{private $appId;private $appSecret;public function __construct($appId, $appSecret){$this->appId = '你自己的APPID'; $this->appSecret= '你自己的APPSECRET'; }public function getBaseInfo(){//1.获取到code $redirect_uri=urlencode("http://你的域名/Wechatsign/getUserOpenId");//这里的地址需要http://$url="https://open./connect/oauth2/authorize?appid=".$this->appId."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";header('location:'.$url);}public function getUserOpenId(){//2.获取到网页授权的access_token $code = $_GET['code'];$url="https://api./sns/oauth2/access_token?appid=".$this->appId."&secret=".$this->appSecret."&code=".$code."&grant_type=authorization_code ";//3.拉取用户的openid$res = $this->http_curl($url);echo $res;//打印即可看到用户的openid$data = json_decode($res,true);if(!empty($data['access_token']) && !empty($data['openid'])){$url = "https://api./sns/userinfo?access_token=".$data['access_token']."&openid=".$data['openid']."&lang=zh_CN"; $userInfo = $this->http_curl($url);echo $userInfo;}}public function valid(){$echoStr = $_GET["echostr"];//valid signature , optionif($this->checkSignature()){echo $echoStr;exit; }}private function checkSignature(){$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token = TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}public function http_curl($url){$curl = curl_init();//设置抓取的urlcurl_setopt($curl, CURLOPT_URL, $url);//设置头文件的信息作为数据流输出curl_setopt($curl, CURLOPT_HEADER, 0);//设置获取的信息以文件流的形式返回,而不是直接输出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//执行命令$data = curl_exec($curl);//关闭URL请求curl_close($curl);//显示获得的数据return $data;}}

代码 很简单,不复杂,应该能看懂(如果看不懂去看一下微信的开发者文档)。有一点很重要,如果你要获取用户的基本信息比如性别、昵称,头像,地址之类的信息的话,你要注意我getBaseInfo()方法里的url中有一个参数scope他的值一定是snsapi_userinfo,别直接拿微信开发文档里的url过来用,他给的值是snsapi_base。需要你注意改一下,我已经改好了,但还是写出来让大家了解一下。

ok,将http://你的域名/接口,这个地址复制到草料二维码,生成二维码后扫一扫,你就能看到结果信息了,按我的绝对没问题哦。如果有用的话,就点个赞吧。

予人玫瑰,手有余香

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。