1.在微信小程序开发者平台,配置服务器域名
这里配置的是https的,需要先在服务器配置ssl证书,我使用的是阿里云的证书,在阿里云的文档里面有详细步骤。
2.在小程序的app.js中请求接口
微信官方文档地址 https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html#wxloginobject
// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
wx.request({
url: "https://配置的合法域名/test.php",
data: {
code: res.code
},
method: 'POST',
header: { 'content-type': 'application/x-www-form-urlencoded' },
success: res=> {
that.globalData.openid = res.data.openid;
console.log(that.globalData.openid)
}
})
}
})
globalData: {
userInfo: null,
openid: 0
}
3.PHP请求接口获取openid
class testController extends Yaf_Controller_Abstract
{
protected $appid = "你的appid";
protected $secret = "你的secret";
protected $grant_type = "authorization_code";
//获取用户openid
public function getOpenidAction()
{
$request = $this->getRequest();
//获取微信小程序传过来的code
$js_code = $request->getPost("code");
$curl = curl_init();
//使用curl_setopt() 设置要获得url地址
$url = 'https://api.weixin.qq.com/sns/jscode2session?appid=' . $this->appid . '&secret=' . $this->secret . '&js_code=' . $js_code . '&grant_type=' . $this->grant_type;
curl_setopt($curl, CURLOPT_URL, $url);
//设置是否输出header
curl_setopt($curl, CURLOPT_HEADER, false);
//设置是否输出结果
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
//设置是否检查服务器端的证书
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
//使用curl_exec()将curl返回的结果转换成正常数据并保存到一个变量中
$data = curl_exec($curl);
//关闭会话
curl_close($curl);
print_r($data);
}
}
PHP完整代码:http://github.crmeb.net/u/LXT