将微信提供的解密包下载放入extend目录中

修改:ErrorCode.php文件,添加命名空间

修改WXBizDataCrypt.php

在控制器中引入:

后台:
public function getSee(Request $request)
{
$code = $request::param('code');
$encryptedData = $request::param('encryptedData');
$iv = $request::param('iv');
// 小程序ID 注意开发者工具也要使用该id
$appid = 'wx46f1608e8baf03d5';
// 小程序密码
$secret = 'b1154a72a24edc956ada6ce2a681d546';
$url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code';
$res = file_get_contents($url);
$res = json_decode($res,true);
$ret =$this->decryUser($iv,$res['session_key'],$encryptedData);
return json($ret);
}
private function decryUser($iv,$sessionKey,$encryptedData)
{
$data = null;
$appid = 'wx46f1608e8baf03d5';
$pc = new WXBizDataCrypt($appid, $sessionKey);
$errCode = $pc->decryptData($encryptedData, $iv, $data );
return $data;
}小程序:
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号</button>
wx.login({
success:function(res){
var code = res.code;
if(e.detail.errMsg == "getPhoneNumber:ok"){
wx.request({
url:'xxx/index/index/getSee',
data:{
encryptedData: e.detail.encryptedData,
iv: e.detail.iv,
code:code
},
method:"post",
success:function(res){
console.log(res.data)
let data = JSON.parse(res.data)
console.log(data.phoneNumber)
that.setData({
phone:data.phoneNumber
})
that.requestPostData()
}
})
}
}
})参考:
https://www.jb51.net/article/229956.htm
https://www.cnblogs.com/yehuisir/p/13729836.html