大体逻辑:
1.需要在微信小程序中获取code
2.再通过code调用接口获取openid
实现步骤:
1. app.js
wx.login({
success: res => {
console.log('res',res);
//res.code 为获取的code
//将code发送给你自己的服务器接口
wx.request({
url:yourserver.php,
data:{
code:res.code
},
success:function(data){
wx.setStorageSync('openid', data.data.openid)
wx.setStorageSync('session_key', data.data.session_key)
}
})
// 发送 res.code 到后台换取 openId, sessionKey, unionId
}
})
2.php端
$code=$_GET['code'];//取code
$appid = ''; // 小程序APPID
$secret = ''; // 小程序secret
//调用微信接口,取得数据
$url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' . $appid . '&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code';
//方法1:curl请求方法
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
// 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。
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);
//方法2:get请求方法
$stream_opts = [
"ssl" => [
"verify_peer"=>false,
"verify_peer_name"=>false,
]
];
$res = file_get_contents($url,false,stream_context_create($stream_opts));
echo json_encode( json_decode($res, true)); // 这里是获取到的信息