//获取
public function getJsapi_ticket(){
$url = urldecode($_POST['url']);
vendor('wx.jssdk');
$jssdk = new \JSSDK("appid", "appsecret",$url);//你的appid,appsecret
$data = $jssdk->GetSignPackage();
exit(json_encode(array('state'=>'1','msg'=>'请求成功','data'=>$data)));
}
//微信授权
public function weixin(){
$code = $_POST['code'];
$state = $_POST['state'];
//换成自己的接口信息
$appid = 'appid';
$secret = 'appsecret';
// 第一步:取得openid
$oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
$oauth2 = $this->getJson($oauth2Url);
$access_token = $oauth2["access_token"];
$openid = $oauth2['openid'];
$get_user_info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
$rs = $this->getJson($get_user_info_url);
//打印用户信息
$find = M('member')->where('wx_open_id = "'.$rs['openid'].'"')->find();
if($find){
$list['access_token'] = md5($find['uid'].$find['wx_open_id'].time());
$id = M('member')->where('uid = "'.$find['uid'].'"')->save($list);
$info['uid'] = $find['uid'];
$info['access_token'] = $list['access_token'];
}else{
$data['wx_open_id'] = $rs['openid'];
$data['nickname'] = $rs['nickname'];
$data['sex'] = $rs['sex'];
$data['province'] = $rs['province'] ?: "";
$data['country'] = $rs['country'] ?: "";
$data['avatar'] = $rs['headimgurl'];
$data['city'] = $rs['city'] ?: "";
$data['access_token'] = md5($data['avatar'].$data['wx_open_id'].time());
$data['type'] = 1;
$id = M('member')->add($data);
$info['uid'] = $id;
$info['access_token'] = $data['access_token'];
}
// file_put_contents('info.txt',print_r($info,true));
if($id){
exit(json_encode(array("state"=>'1',"msg"=>'登录成功',"data"=>$info)));
}else{
exit(json_encode(array("state"=>'0',"msg"=>'登录失败',"data"=>'')));
}
}
public function getJson($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
return json_decode($output, true);
}