当前位置: 移动技术网 > IT编程>开发语言>PHP > 微信公众平台DEMO(PHP)

微信公众平台DEMO(PHP)

2017年12月12日  | 移动技术网IT编程  | 我要评论

冒牌剑仙,我爱我爹哭坟选段,易虎臣女友叶雪

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

<?php if ( ! defined('basepath')) exit('no direct script access allowed');
 
//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, $fromusername, $tousername, $time, '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, $fromusername, $tousername, $time, '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, $fromusername, $tousername, $time, 'text', $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, $fromusername, $tousername, $time, 'text', $contentstr);
          break;
         
        /* others */
         
        default:
          $resultstr = "input something...";
          break;
      }
      echo $resultstr;
       
    }else {
      echo "";
      exit;
    }
  }
}

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网