php微信公众号开发之简答题


Posted in PHP onOctober 20, 2018

本文实例为大家分享了php微信公众号开发简答题的具体代码,供大家参考,具体内容如下

简答题

  • array("第5页 第1个字" => "王","第8页 第1个字" => "李","第30页 第1个字" => "周",)
  • array_rand($array,1)
  • 数据库建立二级菜单

php微信公众号开发之简答题

php微信公众号开发之简答题

核心代码如下:

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;
        $type = $postObj->MsgType;
        $customevent = $postObj->Event;
        $latitude = $postObj->Location_X;
        $longitude = $postObj->Location_Y;
        $keyword = trim($postObj->Content);
        $time = time();
        $textTpl = "<xml>
              <ToUserName><![CDATA[%s]]></ToUserName>
              <FromUserName><![CDATA[%s]]></FromUserName>
              <CreateTime>%s</CreateTime>
              <MsgType><![CDATA[%s]]></MsgType>
              <Content>%s</Content>
              <FuncFlag>0</FuncFlag>
              </xml>"; 
        include("coon.php");      

        if($keyword=="8")
        {
          $array=array("第5页第1个字"=>"王","第8页第1个字"=>"李","第30页第1个字"=>"周");
          $a=array_rand($array,1);
          $b=$array[$a];
          $contentStr=$a."是什么?";
          $sql="INSERT INTO `menu2` (`id` ,`user` ,`sec`,`answer`)VALUES (NULL , '{$fromUsername}', '8','{$b}')";
          mysql_query($sql);
        }  
        else
        {
          $sql="SELECT * FROM `menu2` where `user`= '{$fromUsername}'";
          $query=mysql_query($sql);
          $rm=mysql_fetch_array($query);
          $sec=$rm['sec'];
          $answer=$rm['answer'];   
          if($sec=="8")
          {
            if($keyword==$answer)
            {
              $contentStr="你的答案是正确的,视频代码下载地址为....";
            }
            else
            {
              $contentStr="你的答案不正确,请购买《微信公众平台搭建与开发揭秘》";
            }
          }
          else 
          {
            $contentStr="请先输入8";
          }
        }
        $msgType="text";
        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
        echo $resultStr;
    }
  }

coon.php:连接数据库代码如下:

<?php


    //用 户 名 : $user
    //密码 : $pwd
    //主库域名 : $host
    //从库域名 : SAE_MYSQL_HOST_S
    //端口 : $port
    //数据库名 : $dbname

    $dbname = "app_dq095";
    $host = "w.rdc.sae.sina.com.cn";
    $port = "3306";
    $user = "4k514n103z";
    $pwd = "2402314li2j1i5im1xy2xizj5y332w2x41k2z203";

    /*接着调用mysql_connect()连接服务器*/
    // 连主库
    $db = mysql_connect($host,$user,$pwd);

    if(!$db){
      die("Connect Server Failed: " . mysql_error($db));
    }

    /*连接成功后立即调用mysql_select_db()选中需要连接的数据库*/
    if (!mysql_select_db($dbname)) {
      die("Select Database Failed: " . mysql_error($db));
    }
    mysql_query("set names utf-8",$db); 

    /*至此连接已完全建立,就可对当前数据库进行相应的操作了*/
    /*!!!注意,无法再通过本次连接调用mysql_select_db来切换到其它数据库了!!!*/
    /* 需要再连接其它数据库,请再使用mysql_connect+mysql_select_db启动另一个连接*/

    /**
       * 接下来就可以使用其它标准php mysql函数操作进行数据库操作
    */

index.php整体代码如下:

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



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

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);
        $fromUsername = $postObj->FromUserName;
        $toUsername = $postObj->ToUserName;
        $type = $postObj->MsgType;
        $customevent = $postObj->Event;
        $latitude = $postObj->Location_X;
        $longitude = $postObj->Location_Y;
        $keyword = trim($postObj->Content);
        $time = time();
        $textTpl = "<xml>
              <ToUserName><![CDATA[%s]]></ToUserName>
              <FromUserName><![CDATA[%s]]></FromUserName>
              <CreateTime>%s</CreateTime>
              <MsgType><![CDATA[%s]]></MsgType>
              <Content>%s</Content>
              <FuncFlag>0</FuncFlag>
              </xml>"; 
        include("coon.php");      

        if($keyword=="8")
        {
          $array=array("第5页第1个字"=>"王","第8页第1个字"=>"李","第30页第1个字"=>"周");
          $a=array_rand($array,1);
          $b=$array[$a];
          $contentStr=$a."是什么?";
          $sql="INSERT INTO `menu2` (`id` ,`user` ,`sec`,`answer`)VALUES (NULL , '{$fromUsername}', '8','{$b}')";
          mysql_query($sql);
        }  
        else
        {
          $sql="SELECT * FROM `menu2` where `user`= '{$fromUsername}'";
          $query=mysql_query($sql);
          $rm=mysql_fetch_array($query);
          $sec=$rm['sec'];
          $answer=$rm['answer'];   
          if($sec=="8")
          {
            if($keyword==$answer)
            {
              $contentStr="你的答案是正确的,视频代码下载地址为....";
            }
            else
            {
              $contentStr="你的答案不正确,请购买《微信公众平台搭建与开发揭秘》";
            }
          }
          else 
          {
            $contentStr="请先输入8";
          }
        }
        $msgType="text";
        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
        echo $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 相关文章推荐
文章推荐系统(二)
Oct 09 PHP
PHP新手上路(九)
Oct 09 PHP
php中目录,文件操作详谈
Mar 19 PHP
PHP访问MYSQL数据库封装类(附函数说明)
Dec 04 PHP
php smarty 二级分类代码和模版循环例子
Jun 16 PHP
用PHP编写和读取XML的几种方式
Jan 12 PHP
php生成图片缩略图的方法
Apr 07 PHP
PHP处理数组和XML之间的互相转换
Jun 02 PHP
php中遍历二维数组并以表格的形式输出的方法
Jan 03 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
Feb 10 PHP
PHP微信企业号开发之回调模式开启与用法示例
Nov 25 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
Mar 02 PHP
php微信公众号开发之快递查询
Oct 20 #PHP
php微信公众号开发之翻页查询
Oct 20 #PHP
php微信公众号开发之校园图书馆
Oct 20 #PHP
php微信公众号开发之二级菜单
Oct 20 #PHP
php微信公众号开发之音乐信息
Oct 20 #PHP
php微信公众号开发之欢迎老朋友
Oct 20 #PHP
php微信公众号开发之秒杀
Oct 20 #PHP
You might like
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
用PHP制作静态网站的模板框架(一)
2006/10/09 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
YII框架批量插入数据的方法
2017/03/18 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
2017/11/06 PHP
页面中js执行顺序
2009/11/09 Javascript
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
Javascript模块化编程(三)require.js的用法及功能介绍
2013/01/17 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
纯JavaScript实现HTML5 Canvas六种特效滤镜示例
2013/06/28 Javascript
js+css绘制颜色动态变化的圈中圈效果
2016/01/27 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
2020/03/26 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
2017/01/10 Javascript
jQuery插件HighCharts实现2D柱状图、折线图的组合多轴图效果示例【附demo源码下载】
2017/03/09 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
Python实现Const详解
2015/01/27 Python
Python判断变量是否为Json格式的字符串示例
2017/05/03 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
python样条插值的实现代码
2018/12/17 Python
python仿抖音表白神器
2019/04/08 Python
基于Python新建用户并产生随机密码过程解析
2019/10/08 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
Python使用socket_TCP实现小文件下载功能
2020/10/09 Python
深入浅析HTML5中的SVG
2015/11/27 HTML / CSS
美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
2016/10/19 全球购物
软件测试题目
2013/02/27 面试题
乡镇防汛工作汇报
2014/10/28 职场文书
中标通知书
2015/04/17 职场文书
学校工会工作总结2015
2015/05/19 职场文书
退休职工欢送会致辞
2015/08/01 职场文书
2016年大学生寒假社会实践心得体会
2015/10/09 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
Pytorch中Softmax和LogSoftmax的使用详解
2021/06/05 Python
delete in子查询不走索引问题分析
2022/07/07 MySQL