公众号开发--代码
<p>刘昆明的公众号开发--代码</p>
<h4>公众号网页授权登陆接口文档: <a href="https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842" title="链接地址">链接地址</a></h4>
<p>微信扫码登陆不错的文章 <a href="http://www.cnblogs.com/0201zcr/p/5133062.html" title="链接地址">链接地址</a></p>
<pre><code class="language-php"><?php
namespace app\index\controller;
use think\Db;
class Wx extends Home {
// 详细授权
public function getUserDetail(){
// 获取code
$appid = config('wx.appid');
$redirect_uri = urlencode("http://loan.kezhunduo.com/index/Wx/getUserInfo");
$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$appid."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_userinfo&state=doo#wechat_redirect";
header("Location:".$url);
}
public function getUserInfo(){
header('content-type:text/html;charset=utf-8');
// 获取网页授权的 access_token
$appid = config('wx.appid');
$appsecret =config('wx.appsecret');
$code = $_GET['code'];
$url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=".$appsecret."&code=".$code."&grant_type=authorization_code";
$row = $this->http_curl($url,'get','json');
$access_token = $row['access_token'];
$openid = $row['openid'];
// 拉取用户信息
$url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN";
$info = $this->http_curl($url,'get','json');
if($info) {
session('openid', $info['openid']);
}
// 入表
return $this->info_to_db($info);
}
// 微信用户信息入库
public function info_to_db($info=''){
$user['user_openid'] = $info['openid'];
$user['user_nickname'] = $info['nickname'];
$user['user_city'] = $info['city'];
$user['user_avatar'] = $info['headimgurl'];
$user['user_level'] = 0;
$user['user_create_time'] = $_SERVER['REQUEST_TIME'];
$userExt = Db::name('user')->where('user_openid',$info['openid'])->find();
//不存在就进行入库操作
if(!$userExt){
//不存在用户
$user['user_pid'] = session('shareuid')?session('shareuid'):0;
$userId = Db::name('user')->insertGetId($user);
session('user_id',$userId);
}else{
session('shareuid',null);
session('user_id',$userExt['user_id']);
}
return $t</code></pre>