微信3
一.使用草料二维码生成器和媒体上传接口
有很多人喜欢在QQ或者泡泡当中发送网址的连接给用户,甚至有一些人在微信当中发送链接信息给用户,这时其实在用户的角度出发,这个体验并不好.为了提高整个体验,其实最早在国外twitter的公司就提出了一种叫做二维码的服务,其实二维码就是一些网站的连接图片,这个二维码是可以有效的提高用户的体验,因此如果我们需要发送一些网址信息的时候,建议在微信使用二维码进行发送.使用草料二维码生成器就可以生成一个网址的二维码.

问题来了,那么我们如何在微信服务器端发送二维码给用户呢?当用户发送传智播客的时候,那么就回复二维码的网址给用户,所以我们就需要把二维码进行上传,可以使用媒体上传接口进行上传.
媒体上传接口在WeChat.class.php当中定义如下:

查看文档,发觉上传媒体有如下说明:


发觉文档比较重新,于是我去可以一个叫media.php的文件

把代码复制到Lib/Command/Common.php中,然后再Lib/Command建立目录Media
然后把二维码下载后上传到该目录当中,然后编写命令行上传脚本如下:

如果希望媒体上传接口上传成功需要把curl的CURLOPT_SAFE_UPLOAD设置为false

上传就可以获取二维码的mediaid,下图所示:

在api.php中如果我们需要传达传智播客的网站,我们就可以使用二维码的功能,编写代码如下:

二.网页授权接口
网页授权其实是为了网页能跟微信服务器端进行交互的一个功能,假设你想在你的网站当中获取微信用户的信息,那么就需要微信服务器端对你的网页进行授权。

如果希望获取用户的信息那么就需要了解网页授权的两种模式:
1.snsapi_base :可以拉取用户的openId但无法获取用户的详细信息(很少用用,效率最高)
2.snsapi_userinfo :可以获取用户所有的基本信息(头像,昵称,性别,所以在地,使用频率最高)
如果需要使用userinfo模式进行网页授权开发就必须遵循以下三步:
1)构造授权的url地址
2)使用授权的code去获取用户的网页授权access_token和客户端的openId
3)使用网页授权的access_token和openId去拉取微信客户端的相关用户信息
第1步:构造授权的url地址,使用userinfo模式
userinfo授权地址的构造模板如下:
https://open.weixin.qq.com/connect/oauth2/authorize?appid={$appID}&redirect_uri={$url}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

redirect_uri这个参数必须使用urlencode进行编码后传入,因此如果我们需要构造这个url地址,建议编写php来动态构造,我们需要redirect_uri表示需要授权的网页地址的详细路径:

最终结果如下:

接下来把复制的授权地址,创建菜单如下:

菜单必须为view的跳转菜单,如果微信的版本不一样或者第一次访问这个链接,那么微信有可以会询问用户是否进行授权的提示:

但这个界面不是100%会出现(根据微信的版本和环境而定,如果出现用户确认就可以授权)
如果授权成功的话,那么微信服务器端就会传递一个授权的code到阿里云服务器当中,使用以下形式进行传递:
http://www.snk147.top/userinfo.php?code=授权code字符串
如果授权成功就会跳转到userinfo的路径下传达code如下:

第2步:使用code获取openId和网页授权的access_token

网页access_token不同于普通access_token所以我们需要使用授权code进行获取,而不是使用GetAccessToken进行获取,编写代码如下所示:
在WeChatApi.class.php当中发现api地址如下:

在WeChat.class.php当中发现接口如下:

于是我们需要在ucenter/userinfo.php代码中编写代码如下:

测试结果如下所示:

第3步:使用网页access_token和openId获取用户信息

在WeChatApi.class.php当中发现api地址如下:

在WeChat.class.php当中发现userinfo模式的接口如下:

在ucenter/userinfo.php当中编写代码如下所示:

测试结果如下:

返回选项如下所示:

第4步:使用auicss美化用户中心

测试结果如下 :

注意:网页授权的用户拉取信息微信服务器端会缓存72个小时
三.实现美食积分兑换会员注册
第1步:设计会员表如下:

第2步:在api.php下使用订阅事件获取用户的openid写入数据库当中

测试结果如下:

第2步:引导用户更新更多的用户信息,更新个人中心为优惠兑换券
删除菜单再重新建立菜单

测试如下:

第3步:如果用户第1次点击我的优惠券,那么就更新用户的相关资料属性,并且赠送会员20元的优惠券,因此我们需要设计数据库表如下所示:


测试结果如下所示:

第4步:在用户的会员中心中显示优惠券信息


测试结果如下:

第4步:产生使用优惠券的按钮,点击马上使用就使用优惠券,使用ajax进行修改



编写useCoupon.php代码如下所示:

测试结果如下:

第5步:如果双十一的时候要搞活动,所有的会员都有一张双11的50块钱优惠券,那么应该怎么呢?

测试结果如下:

四.使用thinkphp开发微信
1.thinkphp微信的sdk下载

在扩展中输入地址:http://www.thinkphp.cn/extend/588.html


2.安装thinkphp的微信sdk到thinkphp的项目当中

接下来部署thinkphp到阿里云服务器中就可以完成安装
3.在微信公众平台的后台配置thinkphp的api接入
编写IndexController.class.php文件的代码如下所示:

然后在微信公众平台的后台配置thinkphp如下所示:

4.在thinkphp当中开启微信的自动回复功能

测试结果如下所示:

5.判读用户上传的相关类型

测试结果如下:

6.在thinkphp当中使用订阅回复接口

测试结果如下所示:

7.在thinkphp当中使用图片回复接口和音乐回复接口

测试结果如下:

8.回复视频消息

测试结果如下:

9.回复单图文消息

测试结果如下:


10.获取access_token


微信的sdk开发还需自己封装很多功能

浙公网安备 33010602011771号