微信小程序获取微信手机号前端和后端php代码

微信小程序支持一键点击获取当前微信用户的注册手机号功能,不用再频繁输入手机号及验证码进行注册了,提高了用户体验,非常好用,但是使用此功能的前提是小程序必须通过微信认证。
今天我们来讲讲如何编写前后端代码实现这个功能。
一、小程序端代码
我们先获取sessionkey这个值,这个值是参与手机号解密的,所以要提前获取,那么怎么获取呢
wx.login({
success(res) {
console.log(res);
var code = res.code
wx.request({
url: '后端url',
method: "post",
data: {
code
},
success: function (res) {
console.log(res.data.openid);
that.setData(res.data);
}
})
}
})
后端的php返回sessionkey
<?php
$appid = "wx1231312321";
$appsecret = "12312334343534534535";
$code = $_GET['code'];
if ($code == '') {
echo json_encode([
'code' => '201',
'data' => 'code不能为空'
]);
exit();
}
$url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$appsecret.'&js_code='.$code.'&grant_type=authorization_code';
$result = http_curl($url);
$token = json_decode($result, 1);
if (isset($token['session_key'])) {
$sessionkey = $token['session_key']; //拿到openid
echo json_encode([
'code' => '200',
'data' => $sessionkey
]);
exit();
}
echo json_encode([
'code' => '201',
'data' => "登陆失败"
]);
function http_curl($url) {
$curlobj = curl_init();
curl_setopt($curlobj, CURLOPT_URL, $url);
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curlobj, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curlobj, CURLOPT_SSL_VERIFYHOST, FALSE);
$output = curl_exec($curlobj);
curl_close...点击查看剩余70%
网友评论0