微信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步:如果双十一的时候要搞活动,所有的会员都有一张双1150块钱优惠券,那么应该怎么呢?

 

 

测试结果如下:

 

 

 

.使用thinkphp开发微信

1.thinkphp微信的sdk下载

 

 

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

 

 

 

 

 

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

 

 

 

接下来部署thinkphp到阿里云服务器中就可以完成安装

 

3.在微信公众平台的后台配置thinkphpapi接入

编写IndexController.class.php文件的代码如下所示:

 

 

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

 

 

 

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

 

 

测试结果如下所示:

 

 

 

 

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

 

 

测试结果如下:

 

 

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

 

 

 

测试结果如下所示:

 

 

 

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

 

 

测试结果如下:

 

 

8.回复视频消息

 

 

测试结果如下:

 

 

9.回复单图文消息

 

 

测试结果如下:

 

 

 

 

 

 

10.获取access_token

 

 

 

 

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

 

posted @ 2017-10-04 11:32  奋斗的黑蜗牛1号  阅读(707)  评论(0)    收藏  举报