微信开发之获取用户详细信息

    public function wxlogin($code = null)
    {
        //判断是否微信浏览器打开,并判断是否登录
        if ((strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger')) !== false && empty($_SESSION['openid']) || empty($_SESSION['userid']) || empty($_SESSION['username'])) {
       //引导用户进入授权页面同意授权,获取code
            if ($code !== null) {
                //获取openID
                $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?';
                $params = array(
                    'appid'     => '',
                    'secret'    => '',
                    'code'      => $code,
                    'grant_type'=> 'authorization_code',
                );
                $openId = json_decode(file_get_contents($url . http_build_query($params)), true);
                if(!isset($openId['openid'])) $openId['openid'] = -1;
                //设置session
                $_SESSION['openid']  = $openId['openid'];
                //判断数据库是否存在该用户信息
                $url = 'http://'.SITE_DOMAIN.'user/isuser?';
                $params = array(
                    'openid'     => $openId['openid'],
                    'token'      => md5('cunzaiganit.com'),
                );
                $user = json_decode(file_get_contents($url . http_build_query($params)), true);
                //如果数据库没有该用户信息
                if($user['result']){
                    //获取用户信息
                    $url = 'https://api.weixin.qq.com/sns/userinfo?';
                    $params = array(
                        'access_token' => $openId['access_token'],
                        'openid' => $openId['openid'],
                        'lang' => 'zh_CN'
                    );
                    $info = json_decode(file_get_contents($url . http_build_query($params)), true);

                    //将信息存数据库
                    $url = 'http://'.SITE_DOMAIN.'user/adduser?';
                    $params = array(
                        'openid'     => $info['openid'],
                        'name'     => $info['nickname'],
                        'login_name'     => $info['nickname'],
                        'sex'     => $info['sex'],
                        'province'     => $info['province'],
                        'city'     => $info['city'],
                        'country'     => $info['country'],
                        'headlink'     => $info['headimgurl'],
                    );
                    $rows = json_decode(file_get_contents($url . http_build_query($params)),true);
                    $_SESSION['userid']  = $rows['id'];
                    $_SESSION['username']  = $rows['name'];
                } else {
                    //如果有该用户
                    $_SESSION['userid']  = $user['id'];
                    $_SESSION['username']  = $user['name'];
                }
            } else {
                $url = 'https://open.weixin.qq.com/connect/oauth2/authorize?';

                $params = array(
                    'appid'         => '',
                    'redirect_uri'  => 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'],
                    'response_type' => 'code',
                    'scope'         => 'snsapi_userinfo',
                    'state'         => md5('baidu.com') . '#wechat_redirect'
                );
                die(header('Location:'.$url . http_build_query($params)));
            }
        }
    }

微信开发之模板消息实例


public function test()
{
        //获取token
        $wxtoken = $this->jssdks->getToken();
        //拼接URL
        $url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token='.$wxtoken;
        //发送需要发送的模板信息内容
        $params = json_encode(array(
            'touser' => "openid",//接收者的OpenId
            'template_id' => '',//模板ID,可去微信公众号后台查看
            "url" => "http://".STYLE_DOMAIN,//用户接收到信息,点击后挑战的地址
            'topcolor' => "#FF0000",
            'data' => array(
                //以下内容可参考微信公众号后台填写
                'first' => array(
                    "value" => "业务到期提示",
                    "color" => "#173177"
                ),
                'type' => array(
                    "value" => "到期提示",
                    "color" => "#173177"
                ),
                'date' => array(
                    "value" => date('Y-m-d'),
                    "color" => "#173177"
                ),
                'remark' => array(
                    "value" => '本业务将在月底自动取消。如需续用,请您在到期前点击链接,根据指引办理业务。感谢您的体验!',
                    "color" => "#173177"
                ),
            )
            )
        );
        //调用封装好的Curl发送数据。
        $result = $this->getapi->get_json_decode($params,$url);
 }

MYSQL直接获取本月所有数据的SQL语句

原本时间存储于数据库都使用的时间戳格式,最近和一个JAVA对接,他们数据库不是时间戳格式,而是:2016-12-5 11:16:11这种形式储存,所以感觉挺繁琐。

需要查询一下本月的数据,百度的方法:

select count(ID) from tb where month(时间字段) = month(getdate());

可是这个SQL语句,需要用到MYSQL的ROOT权限,我出于安全考虑,一般都不动用ROOT权限的,所以运行之后会报错:

1370 - execute command denied to user 'weixin'@'%' for routine 'datatest.getdate'

最后给出MYSQL直接获取本月所有数据的sql语句:

select name from 表名 where date_format(时间字段名,'%Y-%m')=date_format(now(),'%Y-%m');

PHPStorm进行SVN提交报客户端版本太旧的解决方案

前段时间同事使用PHPStorm中的subversion进行SVN提交的时候,总是报一个错;

Cannot checkout from svn: svn: E155021: This client is too old to work with

可是我的却没报任何错。很奇怪,直到后来重新调整SVN我也出现这种情况,才明白。。。。

刚开始我以为是我本机的SVN版本太低,但是最后发现是1.9的,最新版!然后看subversion的版本是1.7.

原因:

由于本机的SVN客户端是1.9版本太高,而PHPStorm中的subversion是1.7,然后先用SVN客户端拉取后,再用PHPStorm来拉取就会提示客户端版本过低了。    

解决方案:

方法一:不要使用SVN客户端进行拉取和更新,全程使用PHPStorm中的subversion。

方法二:如果已经使用SVN客户端进行拉取了,然后又想使用PHPStorm来进行管理,可将目录下的隐藏目录.svn删除,然后再用PHPStorm中的subversion拉取更新。

Linux/ubantu下安装无线网卡连接无线网

闲来无事,将本机系统换为了ubantu系统,丢弃WINDOWS系统了。装了ubantu系统后才发现windows系统真的太慢了。苹果系统之所以好用并不是没有道理的。下面说说我在安装ubantu系统中遇到的奇葩问题吧;

由于我是断网安装的,所以在安装的时候直接就跳过了网络设置。等系统安装好之后在来设置,可是等到系统安装好后,却发现了问题。没有无线网连接。

然后各种百度/谷歌,都没什么建设性意见,看到说是连上网,更新源,更新之后就好了。

当我满怀期待的插上网线更新系统之后,打开系统,发现还是没有无线网连接。然后此时我的内心是崩溃的。

然后在继续查找原因,最后发现可能是网卡驱动的问题,查看本机的无线网卡的型号。发现是broadcom制造的(本人是双系统,win7+ubantu)。

下面就是更新网卡驱动的步骤:

1、打开终端:vim /etc/apt/sources.list 在文件最后加更新源

# Debian 8 "Jessie"
deb http://http.debian.net/debian/ jessie main contrib non-free
----------------2-5都是在终端-----------------------
2、 apt-get update

3、apt-get install linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') broadcom-sta-dkms

4、modprobe -r b44 b43 b43legacy ssb brcmsmac

5、modprobe wl

6、成功----------

7、完成后重启即可使用wifi 记得将1中添加的源删除或注释掉-------------------------

最新文章

最近回复

  • 裤衩哥:可以要你的菊花吗?
  • admin:楼上+1
  • admin:吃瓜群众 为 落魂 打call
  • :牛逼了..........
  • 帮帮:厉害!谢谢了朋友!解决了我的问题。
  • 落魂:好多小伙伴找我要这个CSS样式,其实这个是使用的一套模块!大家可...
  • 星辰:您好,博主,有错误提示页面的css样式吗?
  • 落魂:是的,这是上次有人问,就研究了一下
  • gay:可以要你的菊花吗?
  • falost:个人决定如果做canvas 还是使用原生的比较好点

分类

归档

友情链接