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 中文乱码解决办法总结分析
Jul 30 PHP
php 编写安全的代码时容易犯的错误小结
May 20 PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 PHP
php使用sql数据库 获取字段问题介绍
Aug 12 PHP
php使用curl访问https示例分享
Jan 17 PHP
php输出1000以内质数(素数)示例
Feb 16 PHP
PHP判断IP并转跳到相应城市分站的方法
Mar 25 PHP
PHP+shell实现多线程的方法
Jul 01 PHP
PHP生成word文档的三种实现方式
Nov 14 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
Laravel如何实现适合Api的异常处理响应格式
Jun 14 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
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
PHP常量define和const的区别详解
2019/05/18 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
javascript实现禁止右键和F12查看源代码
2014/12/26 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
JS+CSS实现自适应选项卡宽度的圆角滑动门效果
2015/09/15 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
2016/02/14 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
CodeMirror js代码加亮使用总结
2017/03/25 Javascript
socket.io学习教程之基本应用(二)
2017/04/29 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
Vue防止白屏添加首屏动画的实例
2019/10/31 Javascript
简述Python中的面向对象编程的概念
2015/04/27 Python
Python正规则表达式学习指南
2016/08/02 Python
Python的IDEL增加清屏功能实例
2017/06/19 Python
Python2和Python3的共存和切换使用
2019/04/12 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
Python实现微信好友的数据分析
2019/12/16 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
2020/04/14 Python
CSS3动画和HTML5新特性详解
2020/08/31 HTML / CSS
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
Omio俄罗斯:一次搜索公共汽车、火车和飞机的机票
2018/11/17 全球购物
阿玛尼美妆俄罗斯官网:Giorgio Armani Beauty RU
2020/07/19 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
建筑项目策划书
2014/01/13 职场文书
大学毕业感言50字
2014/02/07 职场文书
公职人员索取回扣检举信
2014/04/04 职场文书
反对形式主义、官僚主义、享乐主义和奢靡之风整改措施
2014/09/17 职场文书
关于运动会广播稿200字
2014/10/08 职场文书
青年文明号汇报材料
2014/12/23 职场文书
大学校园招聘会感想
2015/08/10 职场文书
Python使用华为API为图像设置多个锚点标签
2022/04/12 Python