首页 > 语言 > PHP > 正文

微信公众平台DEMO(PHP)

2024-05-04 23:45:28
字体:
来源:转载
供稿:网友
这篇文章主要介绍了微信公众平台DEMO(PHP),需要的朋友可以参考下
 

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

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); //define your tokendefine("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;    }  }}


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选