A-A+

微信公众平台DEMO(PHP)

2019年07月31日 PHP学习 暂无评论
博客主机

本人在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 (!emptyempty($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 笑话精选 
 
"; 
 
              $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> 
 
                <img> 
 
                  <mediaid><!--[CDATA[%s]]--></mediaid> 
 
                  
 
                </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; 
 
    } 
 
  } 
 
} 

给我留言

Copyright © ios教程,苹果粉丝,苹果资讯,ios入门教程,ios学习,ios程序员,ios视频教程,ios粉丝网 保留所有权利.   Theme  Ality

用户登录