Skip to main content

公众号服务开发之—-微信登录(一)

微信登录

微信公众平台的 微信服务号 可以做微信登录。

微信开放平台的 可以做扫描二维码进行微信登录。

但这都有个缺点。

微信公众平台的微信服务号,必须要先关注微信服务号,并在该微信服务号里面进行接口调用并登录。

如果想实现在网页里面直接调用接口,授权登录,这个是不可以实现的。

想要实现这样的操作就要交300元进行微信开放平台认证。并申请“公众号服务开发”

填写一大堆申请表单。终于到了开放阶段。

首先要获取第三方平台access_token

这里需要传三个参数,其中一个是component_verify_ticket

获取这个值需要调用 “推送取消授权通知”

这个值是微信服务器向其“授权事件接收URL”每隔10分钟定时推送component_verify_ticket的

但是这个内容是个加密的,如果需要解密需要再阅读【消息加解密接入指引】

下载微信的Demo改一下配置的参数,上传的服务器运行一下,会出现

Fatal error: Call to undefined function mcrypt_get_block_size() in /web/m.wm18.com/includes/WXGongZhongHaoFuWu/pkcs7Encoder.php on line 81

因为用的是Linux系统。这个时候需要安装mcrypt的扩展。

Linux版本是CentOs

mcrypt的扩展yum包里面没有(命令是yum install libmcrypt libmcrypt-devel mcrypt mhash)。需要用源码编译方式安装。

装这个玩意 花了我大半天时间了。最后终于装上了。

我服务器上php的版本是5.3.3的,其他版本的没试。

(1) 、先下载个libmcrypt 按下面的方法进行安装

#使用wget可以通过以下路径下载
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz

#解压
tar -zxvf libmcrypt-2.5.7.tar.gz

#进入目录
cd libmcrypt-2.5.7

#编译(默认安装到/usr/local/lib/)
./configure --prefix=/usr/local/libmcrypt

#执行安装
make && make install

(2) 、然后安装mcrypt。我服务器上php的版本是5.3.3,这个时候需要下载php5.3.3的完整版。这里要注意,如果你的php版本是5.3.3就一定要下载5.3.3的完整版。不能用别的版本里面的mcrypt代替我就是因为用了5.2.9所以没装上,后来才下的5.3.3。

官网上下载php-5.3.3.tar.gz 太慢了,百度找一下。我是百度上找的。 然后解压 进入ext/mcrypt文件夹

[root@*_* 14:45 ~]# cd php-5.3.3/ext/mcrypt/

执行phpize命令(phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块,如果没有?yum install php53-devel里包含了,或者其他方法)

[root@*_* 14:48 mcrypt]# whereis phpize //为了确定phpize存在
phpize: /usr/bin/phpize /usr/share/man/man1/phpize.1.gz
[root@*_* 14:48 mcrypt]# phpize
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626

执行完后,会发现当前目录下多了一些configure文件,最后执行php-config命令就基本完成了

执行以下命令,确保你的/usr/bin/php-config是存在的

[root@*_* 15:02 mcrypt]# whereis php-config
php-config: /usr/bin/php-config /usr/share/man/man1/php-config.1.gz
[root@*_* 15:02 mcrypt]# ./configure --with-php-config=/usr/bin/php-config

如果遇到以下错误,请先安装gcc,命令yum install gcc

configure: error: no acceptable C compiler found in $PATH

如果遇到 configure: WARNING: You will need re2c 0.13.4 or later

解决办法:

wget http://sourceforge.net/projects/re2c/files/re2c/0.13.5/re2c-0.13.5.tar.gz/download
tar zxf re2c-0.13.5.tar.gz && cd re2c-0.13.5
./configure
make && make install

然后再去编译安装Fileinfo,就不会报re2c的错误了.

直到不报错,出现:config.status: creating config.h,执行以下命令

[root@*_* 15:06 mcrypt]# make && make install

最后的最后,会提示你如下,说明你大功告成了

Installing shared extensions: /usr/lib64/php/modules/

顺便检查下/usr/lib64/php/modules/里的mrcypt.so扩展是否已经创建成功

然后的事就简单了,给你的php.ini添加一条extension=mcrypt.so

[root@*_* 15:09 mcrypt]# cd /etc/php.d

创建一个mrcypt.ini文件就行,里面写extension=mcrypt.so

[root@*_* 15:17 php.d]# echo 'extension=mcrypt.so' > mcrypt.ini

(3) 、重启apache,查阅phpinfo,mcrypt模块扩展是不是加载了?