php微信开发 -- 两种运营模式及服务器配置

微信的两种运营模式

编辑模式:使用微信公众平台提供的功能

开发者模式:通过腾讯的api接口调用相应程序进行二次开发

编辑模式

应用场景:

l 不具备开发能力的运营者

l 主要是进行品牌宣传、新闻媒体、自助客服的公众帐号

l 运营初期,不需要特别多的功能

l 开发模式系统升级、故障等特殊情况

功能演示:

1)自动回复

被添加自动回复:当我们订阅或关注微信公众平台时,系统自动发送的回复,我们称之为关注回复或订阅回复。

关键词自动回复:当用户输入的关键词与我们系统设置的关键词相匹配时,自动返回的回复。

消息自动回复:当用户输入的关键词与我们系统设置的关键词不匹配时,自动返回的回复。

2)自定义菜单(只有订阅号认证和服务号)

案例1:简易号码簿

项目需求:

用户关注后或输入?自动弹出自定义回复文本信息如下:

l 【1】特种服务号码

l 【2】通讯服务号码

l 【3】银行服务号码

l 【@】用户反馈

回复1

常用特种服务号码:

匪警:110

火警:119

急救中心:120

回复2

常用通讯服务号码:

中移动:10086

中电信:10000

中联通:10010

回复3

银行服务号码

建设银行:95533

工商银行:99588

农业银行:95599

回复4

尊敬的用户,为了更好的为您服务,请将系统的不足之处反馈给我们。

反馈格式:@+建议内容

例如:@希望增加***号码

回复:感谢您的宝贵建议,我们会努力为您提供更好的服务!

关注:

欢迎关注简易号码簿!

在这里,我们为您提供常用号码查询服务。您可以通过文本菜单交互或关键字搜索的方式查找号码。

快回复?开始体验吧!

未全匹配:当我们输入的关键词带?即可实现匹配

已全匹配:只有当我们输入关键词?才能实现匹配

案例2:仿2345网址导航

自定义菜单

一级菜单:最多3个

二级菜单:最多5个

项目需求:

便捷生活:

  网址导航:http://m.2345.com/

  天气冷暖:http://waptianqi.2345.com

  快递查询:http://tools.2345.com/m/kuaidi.htm

轻松娱乐:

讲笑话:http://m.2345.com/index.php?c=happy

找小说:http://book.2345.com/m/

看视频:http://v.2345.com/m/

更多选择:

社交:http://m.2345.com/index.php?c=category&id=3

应用:http://m.2345.com/index.php?c=category&id=24

招聘:http://m.2345.com/index.php?c=category&id=31

开发者模式

默认情况微信只开启了编辑模式,两者无法共存,所以开启开发者时,必须关闭编辑模式

编辑模式原理图:

开发者模式原理图

准备:

自定义服务器:(BAE)

1)微信验证接口下载

找到php示例文件下载地址:单击下载

2)微信验证接口分析

这是php示例代码内容,必须保证你在公众平台中填写的token和这里定义的TOKEN常量的值保持一致

第一次做服务器配置(验证)的时候,运行valid()方法。

通过验证之后,就可以通过微信往这边发消息了,这时候就不需要再验证了,所以要将valid()方法注释掉,运行responseMsg()方法。如下:

3)微信响应接口

//响应信息

public function responseMsg()

{

//get post data, May be due to the different environments

//$GLOBALS["HTTP_RAW_POST_DATA"]功能与$_POST类似用于接收HTTP POST数据,两者不同在于GLOBALS可以接收xml数据

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

//extract post data

if (!empty($postStr)){

/* libxml_disable_entity_loader is to prevent XML eXternal Entity Injection,

the best way is to check the validity of xml by yourself */

//解析xml时,不解析entity实体(防止产生文件泄露)

libxml_disable_entity_loader(true);

//simplexml_load_string载入xml到字符串

$postObj = simplexml_load_string($postStr, ‘SimpleXMLElement‘, LIBXML_NOCDATA);

//用户的微信端(手机端)

$fromUsername = $postObj->FromUserName;

//微信公众平台

$toUsername = $postObj->ToUserName;

//接收用户发送过来的数据,存储$keyword里

$keyword = trim($postObj->Content);

//时间戳

$time = time();

//定义文本消息xml模板

$textTpl = "<xml>

<ToUserName><![CDATA[%s]]></ToUserName>

<FromUserName><![CDATA[%s]]></FromUserName>

<CreateTime>%s</CreateTime>

<MsgType><![CDATA[%s]]></MsgType>

<Content><![CDATA[%s]]></Content>

<FuncFlag>0</FuncFlag>

</xml>";

//判断用户传递过来文本消息是否为空

if(!empty( $keyword ))

{

//定义返回消息类型(text文本)

$msgType = "text";

//返回响应回复

$contentStr = "欢迎光临传智播客,客官有什么能为您服务的么?";

//sprintf()函数,把字符串按照指定模式进行格式化%s

//有两个重要参数(格式化字符串,格式化变量)

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

echo $resultStr;

}else{

echo "Input something...";

}

}else {

echo "";

exit;

}

}

时间: 2024-12-23 12:46:21

php微信开发 -- 两种运营模式及服务器配置的相关文章

Spark on YARN两种运行模式介绍

本文出自:Spark on YARN两种运行模式介绍http://www.aboutyun.com/thread-12294-1-1.html(出处: about云开发)   问题导读 1.Spark在YARN中有几种模式? 2.Yarn Cluster模式,Driver程序在YARN中运行,应用的运行结果在什么地方可以查看? 3.由client向ResourceManager提交请求,并上传jar到HDFS上包含哪些步骤? 4.传递给app的参数应该通过什么来指定? 5.什么模式下最后将结果输

JAVA学习篇--JAVA的两种编程模式对比

在Drp项目中,讲解了两种编程模式Model 1和Model2,下面是对这两种模式的简单理解,以及由于Model2是基于MVC架构的模式,就将我们易混淆的MVC与我们之前学的三层架构进行对比学习一下. Model1 所谓Model1就是JSP大行其道的时代,在Model1模式下,整个Web应用几乎全部由JSP页面组成,JSP页面接收处理客户端请求,对请求处理后直接做出响应.用少量的JavaBean来处理数据库连接.数据库访问等操作. 代码示例:修改用户信息 主页面的js跳转: function

AGPS 常见的两种定位模式

SI 定位模式: 用户发起定位请求,辅助GPS 模块快速进行定位.时间在6秒-15秒之间. 这个方式能够有效的解决普通GPS 最快需要30秒时间获得卫星星历的搜星慢的问题,如果使用AGPS将通过中移动的服务器拿到卫星星历,时间可以缩短到6秒-15秒. 对应流程: 启动AGPS UI 管理 -> 开始获取基站信息.IMSI信息―> 启动拨号->与中移动服务器进行SUPL 协议通讯获取卫星星历――> 配置GPS模块进行定位->关闭通讯网络-> 导航软件快速获取精度.纬度.

创建后台任务的两种代码模式

创建后台任务的两种代码模式 后台任务是每个App都需要的一些行为,毕竟主线程是大爷,拖不起,伤不起,脏活累活都只能在不见天日的后台去做. 最简单的后台任务,可以说是直接开一个线程就可以了,或者说来个Service,再开个线程.但这些并不是官方认证的最佳实践,实际上,Google早就考虑到了这一点,并把这些需求进行了封装,给我们提供了非常好的后台任务解决方案,并在Training上进行了讲解: 官网镇楼: https://developer.android.com/training/best-ba

ftp的两种工作模式

注:①ftp监听两个端口:控制端口21 和数据端口20 ②两种工作模式为:主动模式  和被动模式 主动模式: 客户端要去连接ftp服务端,首先客户端会随机打开一个大于1024的端口,去连接ftp服务端的21号控制端口,这个过程需要三次握手(略过),连接后客户端便可以在服务端执行一些命令,如:查询,上传,下载等 当客户端与服务端之间产生数据传输的时候,客户端会告诉服务端采用哪种模式,如主动模式(active),这时ftp服务端就会通过自己的20号数据端口去连接客户端的另一个随机端口,这个过程需要三

4.net两种交互模式

.net两种交互模式 (1) C/S:客户端(Client)/服务器模式(Server) (2) B/S:浏览器(Browser)/服务器模式(Server) 来自为知笔记(Wiz)

Hadoop之MapReduce的两种任务模式

MapReduce按照任务大小和设置的不同,提供了两种任务模式: 客户端通过org.apache.hadoop.mapreduce.protocol.ClientProtocol与服务端通信,ClientProtocol的继承关系: 老一些的版本还有一个JobTracker的实现类,即:classic.用于和MapReduce1.X兼容用的,高一些的版本已经没有这个实现类了. 一,本地模式(LocalJobRunner实现) mapreduce.framework.name设置为local,则不

go---&gt;共享内存和通信两种并发模式原理探究

共享内存和通信两种并发模式原理探究 并发理解 人类发明计算机编程的本质目的是为了什么呢?毫无疑问是为了解决人类社会中的各种负责业务场景问题.ok,有了这个出发点,那么想象一下,比如你既可以一心一意只做一件事,你也可以同时做多件事,比如,你计划今天上午计划就是看足球比赛,ok,你今天的工作就是串行的,单进程的,你只需要完成一件事.但是不巧呢,你妈妈说让你帮她切肉,你妈妈上午要出门有点事,同时不巧呢,你老婆说她上午也要出门,让你帮着打扫家里卫生,这时你今天就要同时做三件事,看比赛,切肉,打扫卫生.这

Apache 两种工作模式 :prefork 、 worker

前言 1·最近这几篇文章都在讲Apache的一些安全与优化,这些针对服务器都是很重要的,掌握这些不仅提升了服务器的安全,还让服务器的性能大大的提高.这样就可以让客户有很好的体验感.2·今天这篇文章依旧是讲Apache.但是,是讲Apache的优化深入.Apache 的默认配置保证基本运行服务,但是在实际生产环境中,有时候需要把服务器性能发挥到最大化. Apache的两种工作模式:(prefork.worker) 很多朋友都知道Apache是当下Web服务器用得最广泛也是最稳定的开源软件之一,其中