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 相关文章推荐
PHP使用者状态管理功能的应用
Oct 09 PHP
献给php初学者(入门学习经验谈)
Oct 12 PHP
php 数组的指针操作实现代码
Feb 08 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
May 17 PHP
关于IIS php调用com组件的权限问题
Jan 11 PHP
php使浏览器直接下载pdf文件的方法
Nov 15 PHP
php实现两表合并成新表并且有序排列的方法
Dec 05 PHP
php实现的简单日志写入函数
Mar 31 PHP
nginx+thinkphp下解决不支持pathinfo模式
Jul 01 PHP
PHP类的特性实例分析
Sep 28 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
Oct 14 PHP
php实现跨域提交form表单的方法【2种方法】
Oct 17 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中养成7个面向对象的好习惯
2010/07/17 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
2011/11/27 PHP
PHP数组操作――获取数组最后一个值的方法
2015/04/14 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
PHP表单数据写入MySQL数据库的代码
2016/05/31 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
让textarea控件的滚动条怎是位与最下方
2007/04/20 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
2009/11/04 Javascript
JavaScript 数组循环引起的思考
2010/01/01 Javascript
php跨域调用json的例子
2013/11/13 Javascript
js操纵dom生成下拉列表框的方法
2014/02/24 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
详解vue-validator(vue验证器)
2017/01/16 Javascript
JavaScript 总结几个提高性能知识点(推荐)
2017/02/20 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
解决vue跨域axios异步通信问题
2019/04/17 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
python每次处理固定个数的字符的方法总结
2013/01/29 Python
Python中使用Inotify监控文件实例
2015/02/14 Python
Python从MP3文件获取id3的方法
2015/06/15 Python
用Python写脚本,实现完全备份和增量备份的示例
2018/04/29 Python
对python中的xlsxwriter库简单分析
2018/05/04 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
英国街头品牌:Bee Inspired Clothing
2018/02/12 全球购物
一些Unix笔试题和面试题
2012/09/25 面试题
linux面试相关问题
2013/04/28 面试题
土建资料员岗位职责
2014/01/04 职场文书
活动策划求职信模板
2014/04/21 职场文书
七一建党日演讲稿
2014/09/05 职场文书
入党自荐书范文
2015/03/05 职场文书
详解Mysql 函数调用优化
2021/04/07 MySQL
Python selenium绕过webdriver监测执行javascript
2022/04/12 Python
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers