加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

微信公众平台DEMO(PHP)

发布时间:2020-05-25 14:16:37 所属栏目:PHP 来源:互联网
导读:这篇文章主要介绍了微信公众平台DEMO(PHP),需要的朋友可以参考下

本人在SAE环境下搭建了CI框架(其实这个小东西用不着用框架的),直接把代码写在了控制器里面

//define your token
define("TOKEN","109");

class Welcome extends CI_Controller {

public function index()
{
/
$this->load->helper('url');
$this->load->view('welcome_message');
/

// use chat response
$this->responseMsg();

}

// chat response
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);
  $fromUsername = $postObj->FromUserName;
  $toUsername = $postObj->ToUserName;
  $MsgType = $postObj->MsgType;
  $time = time();

  switch($MsgType){
    case('text'):
      $keyword = trim($postObj->Content);
      $textTpl = "<xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[%s]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            </xml>";
      switch($keyword){
        case(1):
          // Need to optimize
          // random read data from jokes
          $sql = 'SELECT * FROM jokes';
          $query = $this->db->query($sql);
          $res = $query->result_array();
          $num_rows = $query->num_rows();
          $key = rand(0,$num_rows - 1); // Notice: The value of key is from 0.
          //$contentStr = $key.'#'.$res[$key ]['content']; // debug
          $contentStr = $res[$key ]['content']; 
          break;
        case(2):
          $contentStr = 'Your fromUsername is: '.$fromUsername; 
          break;             
        case(3):
          $newsTpl = "<xml>
                <ToUserName><![CDATA[%s]]></ToUserName>
                <FromUserName><![CDATA[%s]]></FromUserName>
                <CreateTime>%s</CreateTime>
                <MsgType><![CDATA[%s]]></MsgType>
                <ArticleCount>2</ArticleCount>

                <Articles>
                  <item>
                    <Title><![CDATA[%s]]></Title> 
                    <Description><![CDATA[%s]]></Description>
                    <PicUrl><![CDATA[%s]]></PicUrl>
                    <Url><![CDATA[%s]]></Url>
                  </item>
                  <item>
                    <Title><![CDATA[%s]]></Title>
                    <Description><![CDATA[%s]]></Description>
                    <PicUrl><![CDATA[%s]]></PicUrl>
                    <Url><![CDATA[%s]]></Url>
                  </item>
                </Articles>

                </xml> ";

          $resultStr = sprintf($newsTpl,$fromUsername,$toUsername,$time,'news','百度','','http://www.baidu.com/img/bdlogo.gif','http://www.baidu.com','Google','http://www.google.com'); // Notice: Google's logo is not suitable.
          echo $resultStr;
          exit; // Notice: It's exit,not break.                
        case(4):
          $contentStr = "该功能正在开发中,敬请期待..."; 
          break;

        /* others */

        default:
          $contentStr = "回复数字 选择服务n";
          $contentStr .= "1 笑话精选n";
          $contentStr .= "2 获取您的Username...n";  
          $contentStr .= "3 图文消息示例n"; 
          $contentStr .= "4 开发中...n"; 
          break;
      }
      $resultStr = sprintf($textTpl,'text',$contentStr);
      break;

    case('image'):

      $media_id = $postObj->MediaId;
      $imgTpl = "<xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[%s]]></MsgType>
            <Image>
              <MediaId><![CDATA[%s]]></MediaId>
            </Image>
            </xml>";
      $resultStr = sprintf($imgTpl,'image',$media_id);
      break;

      // try get the id of the receive image and analyse
      /*
      $media_id = $postObj->MediaId;
      $textTpl = "<xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[%s]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            </xml>";
      $length = strlen($media_id);
      $contentStr = "I have received the image message you sent,the id of this image is # $media_id #,and the length of media_id is # $length #";
      $resultStr = sprintf($textTpl,$contentStr);
      break;
      */

    case('voice'):
      $textTpl = "<xml>
            <ToUserName><![CDATA[%s]]></ToUserName>
            <FromUserName><![CDATA[%s]]></FromUserName>
            <CreateTime>%s</CreateTime>
            <MsgType><![CDATA[%s]]></MsgType>
            <Content><![CDATA[%s]]></Content>
            </xml>"; 
      $contentStr = '你说啥?俺听不见...';
      $resultStr = sprintf($textTpl,$contentStr);
      break;

    /* others */

    default:
      $resultStr = "Input something...";
      break;
  }
  echo $resultStr;

}else {
  echo "";
  exit;
}

}
}

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读