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 相关文章推荐
ip签名探针
Oct 09 PHP
php通过正则表达式记取数据来读取xml的方法
Mar 09 PHP
php设计模式之委托模式
Feb 13 PHP
PHP记录页面停留时间的方法
Mar 30 PHP
PHPCMS2008广告模板SQL注入漏洞修复
Oct 11 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
PHP 配置后台登录以及模板引入
Jan 24 PHP
php封装的验证码类分享
Feb 26 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
Apr 09 PHP
laravel清除视图缓存的代码
Oct 23 PHP
Git命令之分支详解
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
小偷PHP+Html+缓存
2006/11/25 PHP
php中支持多种编码的中文字符串截取函数!
2007/03/20 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
php源码的安装方法和实例
2019/09/26 PHP
one.php 多项目、函数库、类库 统一为一个版本的方法
2020/08/24 PHP
JavaScript Distilled 基础知识与函数
2010/04/07 Javascript
js 通过cookie实现刷新不变化树形菜单
2014/10/30 Javascript
JavaScript中消除闭包的一般方法介绍
2015/03/16 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
微信小程序 获取微信OpenId详解及实例代码
2016/10/31 Javascript
在vue.js中抽出公共代码的方法示例
2017/06/08 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
mui back 返回刷新页面的实例
2017/12/06 Javascript
vue项目设置scrollTop不起作用(总结)
2018/12/21 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
5分钟快速看懂ES6中的反射与代理
2019/12/19 Javascript
JS代码触发事件代码实例
2020/01/02 Javascript
React中获取数据的3种方法及优缺点
2020/02/18 Javascript
vue addRoutes路由动态加载操作
2020/08/04 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
微信跳一跳python辅助脚本(总结)
2018/01/11 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
Python semaphore evevt生产者消费者模型原理解析
2020/03/18 Python
python IDLE添加行号显示教程
2020/04/25 Python
Python必须了解的35个关键词
2020/07/16 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
俄罗斯电子产品在线商店:UltraTrade
2020/01/30 全球购物
mysql的最长数据库名,表名,字段名可以是多长
2014/04/21 面试题
2014小学植树节活动总结
2014/03/10 职场文书
伊琍体标语
2014/06/25 职场文书
VUE中的v-if与v-show区别介绍
2022/03/13 Vue.js
详解Redis的三种常用的缓存读写策略步骤
2022/05/06 Redis