php根据code获取用户手机号
Posted do better myself
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php根据code获取用户手机号相关的知识,希望对你有一定的参考价值。
首先需要获取token
//初始化curl
$ch = curl_init();
$curlVersion = curl_version();
//设置参数
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
//运行curl,结果以json形式返回
$res = curl_exec($ch);
$data = json_decode($res,true);
$this->get_mobile($data['access_token'],$code,$open_id);
curl_close($ch);
根据返回的token和code获取用户手机号,注意code是前端调用getphpnenumber后返回的code
public function get_mobile($access_token,$code,$open_id)
$phoneCode = $code;//从小程序端传送过来的code是获取用户手机号所需要的参数之一
$code = array('code' => $phoneCode);//将从小程序端获取的数据转换为数组格式
$finalCode = json_encode($code);
$numberUrl = 'https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=' . $access_token;
$getNumber = curl_init();
curl_setopt($getNumber, CURLOPT_URL, $numberUrl);
curl_setopt($getNumber, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($getNumber, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($getNumber, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($getNumber, CURLOPT_POST, 1);
curl_setopt($getNumber, CURLOPT_HEADER, 0);
curl_setopt($getNumber, CURLOPT_POSTFIELDS, $finalCode);
curl_setopt($getNumber, CURLOPT_CONNECTTIMEOUT, 10);
$resultData = curl_exec($getNumber);
curl_close($getNumber);
$disposeData = json_decode($resultData,true);
$phone = $disposeData['phone_info']['phoneNumber'];
/* $number = array('phoneNumber' => $phoneNumber);
$number = json_encode($number);*/
php 微信开发获取用户信息如何实现
php 微信开发获取用户信息
获取用户信息的大致算法是
用户授权登录第三方网站,
重点:scope参数:
snsapi_basic 静默登录,不需要用户授权,只能获取到openid;
snsapi_userinfo ,需要用户点击授权,能获取到openid和所有用户信息;
第一步:先获取用户的code值;
第二步:根据code值去获取access_token,每次请求的值都不一样,如果没有使用,每五分钟更新一次;
第三步:根据access_token获取用户信息;
1.获取code代码实现:
getcode.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
if (isset( $_SESSION [ ‘user‘ ])){ print_r( $_SESSION [ ‘user‘ ]); exit ; } $appid = ‘wx1d7c6fcd6131143b3‘ ; $scope = ‘snsapi_userinfo‘ ; //获取的方式; $url = ‘https://open.weixin.qq.com/connect/oauth2/authorize?appid=‘ . $appid . ‘&redirect_uri=‘ .urlencode( $redirect_url ). ‘&response_type=code&scope=‘ . $scope . ‘&state=123#wechat_redirect‘ ; header( "Location:" . $url ); |
2、根据code获取access_token和openid
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
getOpenid.php <?php //获取用户openid $appid = "your appid" ; $appsecret = "your appsecret" ; $code = $_GET [ ‘code‘ ]; function getOpenID( $appid , $appsecret , $code ){ $appsecret . "&code=" . $code . "&grant_type=authorization_code" ; $weixin = file_get_contents ( $url ); //通过code换取网页授权access_token $jsondecode =json_decode( $weixin ); //对JSON格式的字符串进行编码 $array = get_object_vars( $jsondecode ); //转换成数组 $openid = $array [ ‘openid‘ ]; //输出openid return $openid ; } echo getOpenID( $appid , $appsecret , $code ); |
以上是关于php根据code获取用户手机号的主要内容,如果未能解决你的问题,请参考以下文章