微信小程序获得手机号 php,微信小程序获取手机号

微信小程序部分

getPhoneNumber: function (e) {

if (e.detail.errMsg != 'getPhoneNumber:ok') {

wx.showModal({

showCancel: false,

title: '授权失败',

content: '你将不能完成登录'

})

} else {

wx.login({

success: function (res) {

if (res.errMsg != 'login:ok') {

wx.showModal({

showCancel: false,

title: '登录失败',

content: '你将不能完成登录'

})

} else {

//console.log(res)

//console.log(e.detail)

wx.request({

url: 'https://www.aaa.com/demo.php',

method: 'POST',

data: {

'code': res.code,

'iv': e.detail.iv,

'encryptedData': e.detail.encryptedData

},

header: {

'Content-Type': 'application/x-www-form-urlencoded'

},

success: function (res) {

if (!(res.errMsg == 'request:ok' && res.data.errMsg == 0)) {

wx.showModal({

showCancel: false,

title: '获取手机号失败',

content: res.errMsg+':'+res.data.errMsg

})

} else {

//获取手机号成功

console.log(res)

}

}

})

}

}

})

}

},

PHP部分

include_once "wxBizDataCrypt.php";

$appid = 'xxxxxxxxxxxxxxxxxxxxx'; // 小程序APPID

$secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx'; // 小程序secret

$code=$_POST['code'];

$iv=$_POST['iv'];

$encryptedData=$_POST['encryptedData'];

if(strlen($code)>2 && strlen($iv)>2 && strlen($encryptedData)>2)

{

$url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' . $appid . '&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code';

$curl = curl_init();

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_TIMEOUT, 5000);

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

curl_setopt($curl, CURLOPT_URL, $url);

$res = curl_exec($curl);

curl_close($curl);

$so=json_decode($res,true);

//print_r($so['session_key']);

//print_r($so['openid']);

$sessionKey =$so['session_key'];

$pc = new WXBizDataCrypt($appid, $sessionKey);

$errCode = $pc->decryptData($encryptedData, $iv, $data );

if ($errCode == 0) {

$data=json_decode($data,true);

$data['errMsg']=$errCode;

print(json_encode($data));

} else {

print("{errMsg:".$errCode."}");

}

die();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值