php微信公众号开发之欢迎老朋友


Posted in PHP onOctober 20, 2018

本文实例为大家分享了php微信公众号开发之欢迎老朋友的具体代码,供大家参考,具体内容如下

介绍数据库

  • insert
  • iconv 进行数据库转码函数
  • fromusername 

 php微信公众号开发之欢迎老朋友

关键代码如下:

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj->FromUserName;
$toUsername = $postObj->ToUserName;
$keyword = trim($postObj->Content);
$time = time();
$textTpl = "<xml>
      <ToUserName><![CDATA[%s]]></ToUserName>
      <FromUserName><![CDATA[%s]]></FromUserName>
      <CreateTime>%s</CreateTime>
      <MsgType><![CDATA[%s]]></MsgType>
       <Content><![CDATA[%s]]></Content>
       <FuncFlag>0</FuncFlag>
    </xml>";  

     if(!empty( $keyword ))
     {
       //用 户 名 : $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函数操作进行数据库操作
       */

       $sql="SELECT * FROM `welcome`WHERE `user`= '" . iconv("UTF-8","GBK",$fromUsername) . "'";
       $query=mysql_query($sql);
       $rs=mysql_fetch_array($query);
       $b= $rs['user'];
       $c=iconv("GBK","UTF-8",$b);
       $msgType = "text";
       if ($c==$fromUsername)
       {
         $contentStr = "欢迎老朋友!";
       }else{
        $sql="INSERT INTO `welcome`(`id`,`user`) VALUES (NULL,'{$fromUsername}')";
  mysql_query($sql);
$contentStr = "欢迎新朋友!";
       }

       $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);         
       echo $resultStr;
       mysql_close($db);
     }else{
         echo "Input something...";
 }

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;
        $keyword = trim($postObj->Content);
        $time = time();
        $textTpl = "<xml>
              <ToUserName><![CDATA[%s]]></ToUserName>
              <FromUserName><![CDATA[%s]]></FromUserName>
              <CreateTime>%s</CreateTime>
              <MsgType><![CDATA[%s]]></MsgType>
              <Content><![CDATA[%s]]></Content>
              <FuncFlag>0</FuncFlag>
              </xml>";  

        if(!empty( $keyword ))
        {
          //用 户 名 : $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函数操作进行数据库操作
           */

           $sql="SELECT * FROM `welcome`WHERE `user`= '" . iconv("UTF-8","GBK",$fromUsername) . "'";
           $query=mysql_query($sql);
           $rs=mysql_fetch_array($query);
           $b= $rs['user'];
           $c=iconv("GBK","UTF-8",$b);
           $msgType = "text";
           if ($c==$fromUsername)
           {
             $contentStr = "欢迎老朋友!";
           }else{
            $sql="INSERT INTO `welcome`(`id`,`user`) VALUES (NULL,'{$fromUsername}')";
            mysql_query($sql);
            $contentStr = "欢迎新朋友!";
           }

           $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);         
           echo $resultStr;
           mysql_close($db);
         }else{
            echo "Input something...";
         }


    }else {
      echo "";
      exit;
    }
  }

  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 相关文章推荐
使用PHP curl模拟浏览器抓取网站信息
Oct 28 PHP
php加密解密实用类分享
Jan 07 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
May 10 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
May 15 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
yii2.0之GridView自定义按钮和链接用法
Dec 15 PHP
PHP SESSION的增加、删除、修改、查看操作
Mar 20 PHP
PHP网络操作函数汇总
May 18 PHP
php利用递归实现删除文件目录的方法
Sep 23 PHP
统计PHP目录中的文件数方法
Mar 05 PHP
PHP将整数数字转换为罗马数字实例分享
Mar 17 PHP
PHP扩展安装方法步骤解析
Nov 24 PHP
php微信公众号开发之秒杀
Oct 20 #PHP
php微信公众号开发之关键词回复
Oct 20 #PHP
php微信公众号开发之图片回复
Oct 20 #PHP
php5.x禁用eval的操作方法
Oct 19 #PHP
django中的ajax组件教程详解
Oct 18 #PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
Oct 18 #PHP
PHP使用glob方法遍历文件夹下所有文件的实例
Oct 17 #PHP
You might like
7个超级实用的PHP代码片段
2011/07/11 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
使用 PHPMAILER 发送邮件实例应用
2012/11/07 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
PHP基于新浪IP库获取IP详细地址的方法
2017/05/04 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
基于JavaScript 下namespace 功能的简单分析
2013/07/05 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
jquery插件开发之实现md5插件
2014/03/17 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
js给网页加上背景音乐及选择音效的方法
2015/03/03 Javascript
ECMAScript6新增值比较函数Object.is
2015/06/12 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记6)
2015/12/20 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
微信小程序 检查接口状态实例详解
2017/06/23 Javascript
使用JavaScript破解web
2018/09/28 Javascript
express express-session的使用小结
2018/12/12 Javascript
jQuery事件委托代码实践详解
2019/06/21 jQuery
vue路由分文件拆分管理详解
2020/08/13 Javascript
python多线程操作实例
2014/11/21 Python
Python虚拟环境virtualenv的安装与使用详解
2017/05/28 Python
Python 合并多个TXT文件并统计词频的实现
2019/08/23 Python
python删除某个目录文件夹的方法
2020/05/26 Python
英国最大的宠物食品和宠物用品网上零售商: Zooplus
2016/08/01 全球购物
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
大学生简历的个人自我评价
2013/12/04 职场文书
小学生演讲稿大全
2014/04/25 职场文书
土建工程师岗位职责
2014/06/10 职场文书
公共场所标语
2014/06/30 职场文书
国庆节活动总结
2014/08/26 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
初中教师个人工作总结
2015/02/10 职场文书
2015年端午节活动总结
2015/02/11 职场文书
逃课检讨书范文
2015/05/06 职场文书
谢师宴家长致辞
2015/07/27 职场文书