php微信公众平台开发(四)回复功能开发_php实例

一、简介

微信公众平台可以根据用户发送的信息进行判断,然后给出对应的回复,具有良好的交互性。下文将模拟简单的回复功能,根据这个案例,开发者也可以基本理解微信交互的原理,进行更深层次的开发。

二、思路分析

用户发送过来的文本信息,我们可以提取关键字,通过简单的 if...elseif...else... 实现。

关键代码如下:

if($keyword=="你好"){
  $contentStr = "hello";
}elseif($keyword=="苏州"){
  $contentStr = "上有天堂,下有苏杭";
}else{
  $contentStr = "感谢您关注【卓锦苏州】 微信号:zhuojinsz";
}

如果用户发送"你好",则回复"hello",如果用户发送"苏州",则回复"上有天堂,下有苏杭",其他信息,则回复你的欢迎词。

三、完整代码

<?php
/**
 * wechat php test
 */

//define your token
define("TOKEN", "zhuojin");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->responseMsg();
//$wechatObj->valid();

class wechatCallbackapiTest
{
  /*public function valid()
  {
    $echoStr = $_GET["echostr"];

    //valid signature , option
    if($this->checkSignature()){
      echo $echoStr;
      exit;
    }
  }*/

  public function responseMsg()
  {
    //get post data, May be due to the different environments
    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

     //extract post data
    if (!empty($postStr)){

         $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
        $RX_TYPE = trim($postObj->MsgType);

        switch($RX_TYPE)
        {
          case "text":
            $resultStr = $this->handleText($postObj);
            break;
          case "event":
            $resultStr = $this->handleEvent($postObj);
            break;
          default:
            $resultStr = "Unknow msg type: ".$RX_TYPE;
            break;
        }
        echo $resultStr;
    }else {
      echo "";
      exit;
    }
  }

  public function handleText($postObj)
  {
    $fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $keyword = trim($postObj->Content);
    $time = time();
    $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 ))
    {
      $msgType = "text";

      if($keyword=="你好"){
        $contentStr = "hello";
      }elseif($keyword=="苏州"){
        $contentStr = "上有天堂,下有苏杭";
      }else{
        $contentStr = "感谢您关注【卓锦苏州】 微信号:zhuojinsz";
      }
      $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
      echo $resultStr;
    }else{
      echo "Input something...";
    }
  }

  public function handleEvent($object)
  {
    $contentStr = "";
    switch ($object->Event)
    {
      case "subscribe":
        $contentStr = "感谢您关注【卓锦苏州】"."\n"."微信号:zhuojinsz"."\n"."卓越锦绣,名城苏州,我们为您提供苏州本地生活指南,苏州相关信息查询,做最好的苏州微信平台。"."\n"."目前平台功能如下:"."\n"."【1】 查天气,如输入:苏州天气"."\n"."【2】 查公交,如输入:苏州公交178"."\n"."【3】 翻译,如输入:翻译I love you"."\n"."【4】 苏州信息查询,如输入:苏州观前街"."\n"."更多内容,敬请期待...";
        break;
      default :
        $contentStr = "Unknow Event: ".$object->Event;
        break;
    }
    $resultStr = $this->responseText($object, $contentStr);
    return $resultStr;
  }

  public function responseText($object, $content, $flag=0)
  {
    $textTpl = "<xml>
          <ToUserName><![CDATA[%s]]></ToUserName>
          <FromUserName><![CDATA[%s]]></FromUserName>
          <CreateTime>%s</CreateTime>
          <MsgType><![CDATA[text]]></MsgType>
          <Content><![CDATA[%s]]></Content>
          <FuncFlag>%d</FuncFlag>
          </xml>";
    $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag);
    return $resultStr;
  }

  private function checkSignature()
  {
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];  

    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );

    if( $tmpStr == $signature ){
      return true;
    }else{
      return false;
    }
  }
}

?>

四、测试

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php微信回复功能
微信公众号开发实例、微信公众平台开发实例、php微信公众开发实例、公众号开发实例、微信公众号回复功能,以便于您获取更多的相关知识。

时间: 2024-07-30 10:44:35

php微信公众平台开发(四)回复功能开发_php实例的相关文章

PHP使用Face++接口开发微信公众平台人脸识别系统的方法_php实例

本文实例讲述了PHP使用Face++接口开发微信公众平台人脸识别系统的方法.分享给大家供大家参考.具体如下: 效果图如下: 具体步骤如下: 首先,先登录Face++的官网注册账号:官网链接 注册之后会获取到api_secret和api_key,这些在调用接口的时候需要用到. 然后接下来的就是使用PHP脚本调用API了. 在使用PHP开发微信公共平台的时候,推荐使用Github上的一款不错的框架:wechat-php-sdk 对于微信的常用接口做了一些封装,核心文件wechat.class.php

php微信公众平台交互与接口详解_php实例

本文分为三大部分为大家进行介绍,具体内容如下 1.微信用户.微信服务器和后台服务器的交互 例:微信用户向公众号发送一条文本消息,这条消息会首先传给微信服务器,微信服务器处理这条信息并将其以xml数据格式传递给后台服务器,后台服务器接受到数据后会对数据进行处理,再响应数据以xml数据格式传递给微信服务器,微信服务器再响应到用户微信界面. 微信用户与微信后台服务器之间的交互过程就是数据传递过程,只不过需要需要通过微信服务器这个中转站. 那么微信服务器这个中转站到底有什么用? 对xml数据进行加工包装

微信公众平台推数据统计功能 商业价值可量化

原标题:微信公众平台推出数据统计功能将引起3个变化8月29日晚,微信产品团队通过服务号"微信公众平台"发布消息,宣布"微信公众平台增加数据统计功能".与此同时,细心的用户发现登陆微信公众平台,后台界面上增加了"数据统计"的新菜单,菜单中分为用户分析.图文分析和消息分析三大项,用户可以查看从2013年7月1日起的数据情况.尽管这次"数据统计"功能在微信公众平台 灰度上线,但将引起的3个变化微妙而不乏战略意义,值得重视.变化一:大

微信公众平台上线原创声明功能暂时向微信认证媒体公测

1月22日,微信公众平台在晚间发布声明称,为维护作者权益,鼓励优质内容产生,微信公众平台上线原创声明功能,暂时面向微信认证的媒体类型公众帐号公测. 该声明表示,原创文章在原创声明成功后,微信公众平台会对该文章添加"原创"标识,当其他用户在微信公众平台发布已进行原创声明的文章时,系统会为其注明出处. 如何申请原创声明 原创者可在微信公众平台后台的"素材管理"处进入"图文消息"编辑,点击"申请原创声明".并填写提交原创声明的信息.

微信公众平台之快递查询功能用法实例_php技巧

本文实例讲述了微信公众平台之快递查询功能用法.分享给大家供大家参考.具体如下: 使用方法: #查快递(或三个首字母ckd)#快递编号#快递单号 如(查询EMS单号为1034616494006的快递): #ckd#15#1034616494006 常用快递编号:<br /> 15EMS,56申通,57顺丰,77圆通, 80韵达,87中通,85宅急送,62天天 1. class.base.php文件: <?php /** * 微信公众平台基础类 For Fshare * @author: S

微信公众平台快速上手教程Part5 开发模式讲解

中介交易 SEO诊断 淘宝客 云主机 技术大厅 这部分主要讲解微信公众平台的开发模式,首先说明一下我不是程序员,所以本篇并非讲编程代码之类的,也并非开发模式的说明书,毕竟微信官方已经有一份详细的技术说明文档(在文章尾部提供文档地址),但是由于我们正在开发微信POP营销系统,所以我对开发模式有一定了解,这些了解应该会对准备尝试做微信开发的朋友会有一定帮助,少走部分弯路吧.如果对本篇教程有任何疑问或错漏之处欢迎留言或直接联系我进行更正修改. 首先我们要明确开发模式什么可以做,什么不可以做: 一.开发

微信公众平台消息接口PHP版开发教程

原文:微信公众平台消息接口PHP版开发教程  一.写好接口程序 在你的服务器上上传好一个接口程序文件,如http://www.yourdomain.com/weixin.php  内容如下: <?php define("TOKEN", "weixin");//自己定义的token 就是个通信的私钥 $wechatObj = new wechatCallbackapiTest(); $wechatObj->valid(); //$wechatObj-&

云微客微信公众平台高级接口系列功能率先推出

中介交易 SEO诊断 淘宝客 云主机 技术大厅 继上次云微客版本的更新,用户界面和功能都获得阶段性的飞跃,这少不了全国各地的代理商和准代理提出的宝贵意见.当中最受大家关注的,无疑是针对已认证服务号微信早前公布的五大接口功能,3721.html">2014年5月3日,云微客结合五大接口功能正式上线,大大丰富了商家在微信营销过程中的各项需求.以下让我们来介绍这次更新的内容: 1.数据魔方 数据魔方,全方位提供客户行为分析数据,帮助商家更精准掌握客户行为,对微信营销策划及效果评估作出实质数据支持

微信公众平台开放设备连接功能

摘要: 微信公众平台开放了设备连接功能,可以让公众号和终端设备之间互相传输数据.该功能当前支持智能可穿戴设备,其他硬件设备产品据说会陆续开放,支持蓝牙2.X,3.X,4.0,Wi-Fi以及 微信公众平台开放了设备连接功能,可以让公众号和终端设备之间互相传输数据.该功能当前支持智能可穿戴设备,其他硬件设备产品据说会陆续开放,支持蓝牙2.X,3.X,4.0,Wi-Fi以及移动网络接入. 这项功能只有获得微信资质认证和名称认证的服务号(大V)才能申请开通,官方给出的具体步骤如下: 1.厂商基本资料提交

微信公众平台新增评论管理功能 可显示用户评论

一大早打开微信公众平台,发现插件那边新增了"评论管理"功能组件,查看了一下,可以显示用户评论.微信公众平台要整合微社区的节奏? 通过腾讯微信相关公告消息称,开通微信认证的公众号可以申请添加该功能模块,发布之前选择开启评论才能评论.可以选择精选评论,公众帐号文章只显示被运营者放入精选的评论.