基于PHP微信网页获取用户信息的实例分析
很多用户在开发微信版网页的时候,需要获取用户的基本信息,比如国家,省,市,昵称等,我们接下来基于PHP语言基础详细分析一下如何成功获取。
相关视频推荐:PHP编程从入门到精通
必要条件:
1)公众号认证
2)有网页授权获取用户基本信息的权限接口
注意:最近有朋友说:在公众平台申请的测试号,会出现无法取到用户信息。换到认证的公众账号就正常了!
如果您也遇到这个问题,可以试试在认证的公众账号里测试一下! 感谢大家的支持!
填写授权回调页面的域名
登录公众平台-->开发者中心-->接口权限表
找到 网页授权获取用户基本信息 然后修改-->填写你的域名.如下:
保存即可!
关于网页授权的两种scope的区别说明(官方)
1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。
3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。
因为scope有两中模式,所以下面分开解说:
scope为snsapi_base 那么用户必须是关注了公众号才能取得信息
先自己建立两个文件: index.php 和 getUserInfo.php
代码实例
index.php如下:
//scope=snsapi_base 实例 $appid='你的AppId'; $redirect_uri = urlencode ( 'http://你的域名/getUserInfo.php' ); $url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_base&state=1#wechat_redirect"; header("Location:".$url);
getUserInfo.php如下:
$appid = "你的AppId"; $secret = "你的AppSecret"; $code = $_GET["code"]; //第一步:取全局access_token $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret"; $token = getJson($url); //第二步:取得openid $oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code"; $oauth2 = getJson($oauth2Url); //第三步:根据全局access_token和openid查询用户信息 $access_token = $token["access_token"]; $openid = $oauth2['openid']; $get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN"; $userinfo = getJson($get_user_info_url); //打印用户信息 print_r($userinfo); function getJson($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); return json_decode($output, true); }
scope为snsapi_userinfo 用户不用关注公众号,也能取到信息,但是会有一个界面让用户去点击确认!相当于一个登录授权吧!
代码实例
index.php如下:
//scope=snsapi_userinfo实例 $appid='你的AppId'; $redirect_uri = urlencode ( 'http://你的域名/getUserInfo.php' ); $url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect"; header("Location:".$url);
getUserInfo.php如下:
$appid = "你的AppId"; $secret = "你的AppSecret"; $code = $_GET["code"]; //第一步:取得openid $oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code"; $oauth2 = getJson($oauth2Url); //第二步:根据全局access_token和openid查询用户信息 $access_token = $oauth2["access_token"]; $openid = $oauth2['openid']; $get_user_info_url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token=$access_token&openid=$openid&lang=zh_CN"; $userinfo = getJson($get_user_info_url); //打印用户信息 print_r($userinfo); function getJson($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); return json_decode($output, true); }
测试步骤:
创建index.php和getUserInfo.php两个文件后
先测试:scope为snsapi_base
1)先关注公众账号
2)将网址: http://你的域名/index.php 生成一个二维码!
3)用微信扫一扫
再测试:scope为snsapi_userinfo
1)替换代码
2)取消关注当前公众号.
3)然后用微信扫一扫,刚刚你生成的二维码.
相关学习推荐:php编程(视频)
Atas ialah kandungan terperinci 基于PHP微信网页获取用户信息的实例分析. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.
