zoukankan      html  css  js  c++  java
  • 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;

            }

        }

  • 相关阅读:
    centos7.7环境下编译安装tengine2.3.2版本
    centos6.9安装python3.6.9独立的virtualenv环境,并且能正确引入ssl
    django在centos生产环境的部署
    django入门8之xadmin引入富文本和excel插件
    jenkins服务器使用python脚本rabbitmqadmin和shell对目标服务器进行管理
    django入门7之django template和xadmin常用技巧
    mysql5.7同步复制报错1060故障处理
    Centos7.6使用yum安装PHP7.2
    django中安全sql注入等
    django入门6引入验证码插件 django-simple-captcha
  • 原文地址:https://www.cnblogs.com/hf8051/p/5055429.html
Copyright © 2011-2022 走看看