php微信公众号开发之校园图书馆


Posted in PHP onOctober 20, 2018

本文实例为大家分享了php微信公众号图书馆的具体代码,供大家参考,具体内容如下

图书来源:山东理工大学图书馆书目检索系统

php微信公众号开发之校园图书馆

搜索书名返回是xml格式数据:

php微信公众号开发之校园图书馆

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[news]]></MsgType>
      <ArticleCount>3</ArticleCount>
      <Articles>
      <item>
        <Title><![CDATA[%s]]></Title> 
        <Description><![CDATA[s]]></Description>
        <PicUrl><![CDATA[url]]></PicUrl>
       <Url><![CDATA[url]]></Url>
      </item>
     <item>
    <Title><![CDATA[%s]]></Title>
    <Description><![CDATA[s]]></Description>
    <PicUrl><![CDATA[url]]></PicUrl>
    <Url><![CDATA[url]]></Url>
    </item>
     <item>
       <Title><![CDATA[%s]]></Title>
       <Description><![CDATA[s]]></Description>
       <PicUrl><![CDATA[url]]></PicUrl>
       <Url><![CDATA[url]]></Url>
     </item>
    </Articles>
   <FuncFlag>1</FuncFlag>
  </xml>";    

 $url="http://222.206.65.12/opac/search_rss.php?dept=ALL&title={$keyword}&doctype=ALL&lang_code=ALL&match_flag=forward&displaypg=20&showmode=list&orderby=DESC&sort=CATA_DATE&onlylendable=no";

 $fa=file_get_contents($url);
 $f=simplexml_load_string($fa);
 $da1=$f->channel->item[0]->title;
 $da2=$f->channel->item[1]->title;
 $da3=$f->channel->item[2]->title;  

 $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time,$da1,$da2,$da3);
echo $resultStr;

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[news]]></MsgType>
        <ArticleCount>3</ArticleCount>
        <Articles>
         <item>
          <Title><![CDATA[%s]]></Title> 
          <Description><![CDATA[s]]></Description>
          <PicUrl><![CDATA[url]]></PicUrl>
          <Url><![CDATA[url]]></Url>
         </item>
         <item>
          <Title><![CDATA[%s]]></Title>
          <Description><![CDATA[s]]></Description>
          <PicUrl><![CDATA[url]]></PicUrl>
          <Url><![CDATA[url]]></Url>
         </item>
         <item>
          <Title><![CDATA[%s]]></Title>
          <Description><![CDATA[s]]></Description>
          <PicUrl><![CDATA[url]]></PicUrl>
          <Url><![CDATA[url]]></Url>
         </item>
        </Articles>
        <FuncFlag>1</FuncFlag>
       </xml>";    

     $url="http://222.206.65.12/opac/search_rss.php?dept=ALL&title={$keyword}&doctype=ALL&lang_code=ALL&match_flag=forward&displaypg=20&showmode=list&orderby=DESC&sort=CATA_DATE&onlylendable=no";

     $fa=file_get_contents($url);
     $f=simplexml_load_string($fa);
     $da1=$f->channel->item[0]->title;
     $da2=$f->channel->item[1]->title;
     $da3=$f->channel->item[2]->title;  

     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time,$da1,$da2,$da3);
     echo $resultStr;


  }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 相关文章推荐
模仿OSO的论坛(四)
Oct 09 PHP
php 结果集的分页实现代码
Mar 10 PHP
php新建文件自动编号的思路与实现
Jun 27 PHP
使用PHP破解防盗链图片的一个简单方法
Jun 07 PHP
ThinkPHP上使用多说评论插件的方法
Oct 31 PHP
PHP中创建图像并绘制文字的例子
Nov 19 PHP
帝国cms常用标签汇总
Jul 06 PHP
php验证码生成代码
Nov 11 PHP
joomla数据库操作示例代码
Jan 06 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
php简单计算权重的方法示例【适合抽奖类应用】
Jun 10 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
Dec 18 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
php5.x禁用eval的操作方法
Oct 19 #PHP
You might like
PHP中的cookie不用刷新就生效的方法
2012/02/04 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
php正则表达式获取内容所有链接
2015/07/24 PHP
php去掉文件前几行的方法
2015/07/29 PHP
微信开发之php表单微信中自动提交两次问题解决办法
2017/01/08 PHP
Jquery 一次处理多个ajax请求的代码
2011/09/02 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
原生javascript兼容性测试实例
2013/07/01 Javascript
基于Jquery制作图片文字排版预览效果附源码下载
2015/11/18 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
ionic实现带字的toggle滑动组件
2016/08/27 Javascript
javascript 分号总结及详细介绍
2016/09/24 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
JavaScript实现左侧菜单效果
2017/12/14 Javascript
分享ES6的7个实用技巧
2018/01/18 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
原生JS实现随机点名项目的实例代码
2019/04/30 Javascript
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
webpack 动态批量加载文件的实现方法
2020/03/19 Javascript
JS变量提升原理与用法实例浅析
2020/05/22 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
Python3.x和Python2.x的区别介绍
2013/02/12 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
2018/05/21 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
2018/05/24 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
Python常用的json标准库
2019/02/19 Python
Python文件读写常见用法总结
2019/02/22 Python
python、Matlab求定积分的实现
2019/11/20 Python
python循环输出三角形图案的例子
2019/11/22 Python
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
销售人员自我评价
2014/02/01 职场文书
群众路线个人剖析材料
2014/10/07 职场文书
工程承包协议书
2014/10/20 职场文书
千手观音观后感
2015/06/03 职场文书