PHP_微信公众号开发(1)
- 能够说明微信与微信公众平台的区别
- 能够解释微信公众平台的作用
宣传 和 服务
- 能够实现内网穿透进行本地开发微信公众号
1、注册账号
2、购买隧道
3、配置软件
4、配置多端口虚拟主机
5、启动natapp 启动时的目录一定在此软件目录下面
- 能够接受微信的6大接收接口传递过来的数据
file_get_contents(‘php://input’);
写日志
6大接收接口
文本 图片 语音 视频 地理位置 链接
- 能够掌握微信的订阅号回复接口
被动回复
6大回复接口
文本 图片 图文 语音 视频 音乐
返回xml
- 能够熟练掌握php中的cURL库模拟get与post请求
- 能够使用curl库获取access_token
一、微信公众平台概述
1.1、微信发展史
- 2011年1月21日,腾讯推出微信应用程序。(张小龙)
- 2012年8月20日,腾讯推出微信公众平台功能,同年11月开放第三方接口
- 2013年11月注册用户量突破6亿,是亚洲地区最大用户群体的移动即时通讯软件。
- 截止到现在,微信已经覆盖中国 96% 以上的智能手机,尽管微信的月活用户已经达到10亿,其在中国市场依旧有着非常大的增长潜力。
1.2、微信与微信公众平台的区别及作用.
微信:基于点对点关系 个人私人化使用 你发信息给你的同学, 1 ó 1 关系,微信是一个软件
微信公众平台:是基于一对多关系 1 ó N 公众平台可以给关注了它的用户进行资讯信息推送及其相关服务功能的提供,相当于一个24为您服务的服务人员。公众平台是依赖于微信软件,可以理解为一种微信提供服务。
公众平台作用:
品牌推广,服务
关注者:关注公众号平台
记住一点:公众号是依赖于微信平台中,必须先有微信和才有公众号
1.3、微信公众平台的类型
1.3.1、三者相关的区别说明
http://kf.qq.com/faq/120911VrYVrA130805byM32u.html
总结:个人注册使用只能是 【订阅号】,如果企业的话,都是可以注册,但是根据业务不同,选择不同类型公众号。
服务类:用服务号
资讯或推广:用订阅号
企业内部:企业微信
微信认证:认证一次需要300元人民币,每年都需要认证一次。
1.3.2、注册公众平台
https://mp.weixin.qq.com/
个人开发者只能注册,订阅号
根据公众平台的提示,进行一步步的填写资料,完成注册功能,如果是给企业使用,一定要认证一下,这样才能使用到一些支付功能。个人开发者测试阶段,可以不用认证它。因为公众平台,给我们开发者测试提供一个测试平台。
1.3.3、登录公众平台(订阅号)
https://mp.weixin.qq.com/
1.4、微信公众平台的两种运行模式
1.4.1、编辑模式
使用微信公众号提供的统一的微信公众管理平台,进行操作。所有功能都已经写好,直接使用即可。只需要编辑相关内容信息。适合不会编程的人使用。
如果我们使用了编辑模式,它就不能很好的与我们现有的公司的系统结合,所以如果企业中使用了此方式就和我们开发没有太多关系了。
1.4.2、开发者模式
微信公众平台提供了服务器接入的方式,具有开发能力的运营者,可以进行定制开发。
开发者模式:特别适合企业,所以我们说的微信公众号开发就是说开发者模式的学习与使用。
开发者模式:需要一台或多台外网能访问到的服务器
注意:微信公众平台管理中,编辑模式和开发者模式是互斥的,也就是说只能使用其中一种。
开发者模式有2种请求方式:
被动:
主动(curl发起的请求):
二、编辑模式
微信给我们提供好的一个后台管理平台,通过此管理平台,可以进行公众号的管理操作。
2.1、编辑模式与开发模式切换
停用开发者模式,启用编辑模式
2.2、被关注时自动回复
2.3、关键词回复
补充:
半匹配关键词,要想让它回复,必须在你发送的文本中要有全的关键词才可以。
全匹配 必须和关键词一致才可以。
三、开发公众号准备
3.1、外网服务器(方案一)
因为在开发模式下面,需要一或N台外网服务器,给微信公众平台服务器能访问到,就有如下几种选择方案
- 阿里云 ECS
- 腾讯云
- 百度云
- 新浪Sae
- 公司机房实体机
而这些方案都是需要一定的费用。
此方案,公众号上线必须要在此方案中选择一个。但是在开发或学习队段我们有更好的选择。
3.2、内网穿透简介(方案二)【开发推荐】.
natapp软件,它给我们提供一个外网的域名,通过此软件,把我们内网的IP和端口,映射到natapp的服务器上面,这样公众号服务器访问到natapp的服务器上,然后natapp在把请求转发到内网中,从而就实现了内网的穿透。
软件网址:https://natapp.cn/
注:软件平台,需要注册,注册是免费不花钱的。可以免费使用,需要实名认证。成年。
3.3、注册natapp
3.4、实名认证
未满18周岁不可以使用
3.5、购买隧道
购买的时候,一定要指定本机绑定的端口号(web绑定的端口)
点击免费购买就OK了
3.6、natapp软件配置
软件下载: https://natapp.cn/#download
有一个配置文件 【config.ini】
[default]
# 对应一条隧道的authtoken值,在后台列表中复制过来
authtoken=aabbcc
# 日志等级,默认即可
loglevel=DEBUG
在本机进行一次替换已购买好的隧道中的authtoken值。
3.7、运行natapp
3.7.1、配置apache多端口
查看指定的端口号没有没有被占用
linux
netstat –tunpl | grep 8080 如果查到有记录,表示此端口存在
windows
netstat –ano | findstr 8080 如果查到有记录,表示此端口存在
apache配置主配置文件httpd.conf
apache配置虚拟主机
重启web服务器
3.7.2、运行 natapp
可以用外网的域名来访问本机的web服务了
总结:
- 注册此平台账号,购买隧道得到了authtoken值
- 配置软件的相关的配置 config.ini文件
- 配置多端口的虚拟主机
- 运行natapp 一定要注意目录地址
四、开发模式
具有开发能力的人员,使用此方式来进行公众号的接入开发。
4.1、开启开发模式
4.2、api文档位置
接入指南
https://mp.weixin.qq.com/wiki
通过这里,就可以学习到接入配置设置
4.3、接入原理图
微信开发第1步,也是初次上线时第1次
4.4、代码接入
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421135319
到公众平台后台去,到基本配置à修改配置
4.5、测试开发微信公众平台的使用
因为个人注册未认证或公司已使用的平台不方便调试,还有一些个人注册的订阅号权限过小,有些功能无法开发测试,所以公众平台提供一个,测试平台,方便开发者开发。
进入测试平台
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421137522
进入了测试平台后,就需要再次接入一次。
接入成功后,就可以进行相关的业务代码的编写了。
总结:
- 需要一个外网能访问的域名和服务器
- 创建一个web运行环境
- 创建一个文件
- 在公众平台开启开发者模式并填写好相对应的URL地址和token值
- 根据官方文档进行校验,校验通过后返回相对应的字符串
- 接入成功后就可以进行相关的业务代码的编写
五、常用接收消息
5.1、知识点
# 获取原生请求数据
$postStr = file_get_contents('php://input');
php5.5之前可以使用另一种获取原生请求数据
$GLOBALS["HTTP_RAW_POST_DATA"];
# xml转化成对象
simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
LIBXML_NOCDATA 把cdata括起来的字符串解析为字符串
# sprintf格式化输出
%s 字符串
%d 数字
小结:
cdata:在节点中有富文本时才使用它。
获取原生请求数据,我们用file_get_contents(php://input);
5.2、微信的6大接收接口
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140453
当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。
6大接收接口
文本(text)、图片(image)、语音(voice)、视频(video)、地理位置(location)、链接(link)
当然如果用了natapp我们还可以通过4040来查看接受的数据
六、常用被动回复消息
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140543
6.1、介绍
当用户发送消息给公众号时或某些特定的用户操作引发的事件推送时,会产生一个POST请求,开发者可以在返回特定XML结构,来对该消息进行响应。
现支持回复类型有:
文本、图片、图文、语音、视频、音乐
严格来说:发送被动响应消息其实并不是一种接口,而是对微信服务器发过来消息的一次回复(响应)。
6.2、回复文本消息
改进版本
6.3、回复图片
6.4、回复音乐
七、接口调用凭证access_token
7.1、curl发起get和post请求.
7.2、获取access_token.
access_toke是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用它。
access_token的存储至少要保留512个字符空间。
access_token的有效期目前为2个小时。
access_token的每天请求的次数为2000次。
PHP_微信公众号开发(1)相关推荐
- PHP_微信公众号开发(3)
3.3.存储位置入库 第1步:修改用户表中的字段,添加经纬度字段 3.4.整合高德位置服务 基于高德开放平台,来基于位置的服务. 高德开发平台:https://lbs.amap.com 3.4.1.注 ...
- 微信公众号开发本地环境开发_如何在5分钟内使HTTPS在本地开发环境上工作
微信公众号开发本地环境开发 Almost any website you visit today is protected by HTTPS. If yours isn't yet, it shoul ...
- 微信公众号开发用书php,php微信公众号开发(3)php实现简单微信文本通讯
<PHP实战:PHP微信公众号开发(3)PHP实现简单微信文本通讯>要点: 本文介绍了PHP实战:PHP微信公众号开发(3)PHP实现简单微信文本通讯,希望对您有用.如果有疑问,可以联系我 ...
- 【微信公众号开发】获取并保存access_token、jsapi_ticket票据(可用于微信分享、语音识别等等)...
步骤一:首先得开通公众号(目的是 获得appid.AppSecret.设置安全域名)~ [公众号设置]→[功能设置] 设置相应的域名 步骤二:编写帮助类WeixinLuyinHelper中的代码 #r ...
- 微信公众号开发Django-网页授权
原文链接 对于基础的微信公众号开发,网页授权,JSSDK,图片处理应该是最重要的三部分了 根本上也是按照文档开发,技术含量并不高. (选Django=很多权限控制模块已经做好了,比较省力) 在开始之前 ...
- 慕课网_《Java微信公众号开发进阶》学习总结
时间:2017年08月12日星期六 说明:本文部分内容均来自慕课网.@慕课网:http://www.imooc.com 教学源码:http://img.mukewang.com/down/... 学习 ...
- 微信公众号开发之准备工作
这是微信公众号开发的第一步.是网页授权的那章的前提. 工作室有关一个订餐系统的开发,我对公众号开发比较感兴趣,所以参与这方面的学习. 本章主要讲述两个方面的内容,一是工具的准备,二是环境的配置. -- ...
- java微信公众号开发token验证失败的问题及解决办法
java微信公众号开发token验证失败的问题及解决办法 参考文章: (1)java微信公众号开发token验证失败的问题及解决办法 (2)https://www.cnblogs.com/beardu ...
- 微信公众号开发小记(二)--服务器验证
这篇是微信公众号开发小记的第二篇,承接上一篇,此次将完成如下主要功能 对接微信服务器和自己的服务器 需要的"材料" 到这里需要梳理一下都需要什么东西,以便在整个编码的过程中方便我们 ...
最新文章
- 苹果笔记本适合学python吗_千万别花冤枉钱!大学生买本得这么选!
- The Road to learn React书籍学习笔记(第三章)
- 数字开头的正则表达式_初学Web前端要注意什么 正则表达式是怎么回事
- 【学术相关】你只看到了200万年薪的招聘,看不到被困校园的几十万博士
- Python-内建函数
- 改变centos系统的时区
- 浅析FastDFS及所遇问题集锦
- ROS入门-3.C++/python极简基础
- 求解数独难题, Sudoku问题(回溯)
- 【百度AI图像识别】LOGO帝来袭~ 个体再小、LOGO不能少
- 使用ico图标†制作ico图标(浏览器图标
- 计算机无法打开小米路由共享文件,其他电脑如何方法小米路由器硬盘共享文件...
- luffcc项目-04-登录防水墙认证(滑动图片验证码)、在登录认证中接入防水墙、前端获取显示并校验验证码
- Scrapy爬虫入门教程十 Feed exports(导出文件)
- 阿里经济体大数据平台的建设与思考
- python中小括号和中括号的区别_Python3中小括号()、中括号[]、花括号{}的区别详解...
- 用python和ffmpeg批量合成bilibili缓存的m4s成mp4
- QQ是怎么处理消息的
- linux远程端口查看
- 【散文】 岁月留痕遇好友
热门文章
- 把英文翻译成中文php,中文翻译成英文,英文翻译成中文(调用的有道翻译的api)示例源码...
- skyeye模拟器的安装
- 微信网址防封防屏蔽,微信域名一直被封怎么办
- 安卓手机安装charles证书后,抓包依然提示unkown问题(An unknown issue occurred processing the certificate )
- 2014 年最热门的国人开发开源软件 TOP 100
- 既生 Redis 何生 LevelDB ?
- qt获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址
- 刷脸支付潮酷在年轻化的场景中颇受欢迎
- self与static的浅薄理解
- Vue 数据双向绑定