php根据code获取用户手机号

Posted do better myself

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php根据code获取用户手机号相关的知识,希望对你有一定的参考价值。

  1. 首先需要获取token

$url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx8b2dea47ef58&secret=6ee9abfb4fadccb64f15289d41cd";

//初始化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);

  1. 根据返回的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获取用户手机号的主要内容,如果未能解决你的问题,请参考以下文章

php手机端怎么获取微信openid

微信小程序如何获取当前行号

php微信网页授权获取用户信息

PHP如何实现指纹验证,求大神指导

PHP结合阿里云市场Api获取手机归属地视频教程

微信公众平台接口如何获取微信用户详细信息