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
将RTF格式的文件转成HTML并在网页中显示的代码
Oct 09 PHP
优化PHP代码的53条建议
Mar 27 PHP
PHP define函数的使用说明
Aug 27 PHP
php 远程关机操作的代码
Dec 05 PHP
关于php正则匹配汉字的方法介绍
Apr 25 PHP
phpize的深入理解
Jun 03 PHP
使用php的HTTP请求的库Requests实现美女图片墙
Feb 22 PHP
PHP+Apache+Mysql环境搭建教程
Aug 01 PHP
php+redis实现注册、删除、编辑、分页、登录、关注等功能示例
Feb 15 PHP
PHP实现动态压缩js与css文件的方法
May 02 PHP
PHP实现时间日期友好显示实现代码
Sep 08 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
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
针对PHP开发安全问题的相关总结
2019/03/22 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
2010/01/05 Javascript
Google的跟踪代码 动态加载js代码方法应用
2012/11/12 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
Extjs表单输入框异步校验的插件实现方法
2017/03/20 Javascript
vue cli webpack中使用sass的方法
2018/02/24 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
微信小程序拍照和摄像功能实现方法示例
2019/02/01 Javascript
element-ui表格合并span-method的实现方法
2019/05/21 Javascript
使用Vue实现调用接口加载页面初始数据
2019/10/28 Javascript
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
JavaScript canvas实现雨滴特效
2021/01/10 Javascript
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
python爬虫教程之爬取百度贴吧并下载的示例
2014/03/07 Python
Python函数式编程指南(二):从函数开始
2015/06/24 Python
Python函数装饰器实现方法详解
2018/12/22 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
基于Python新建用户并产生随机密码过程解析
2019/10/08 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
10分钟入门CSS3 Animation
2018/12/25 HTML / CSS
详解HTML5 录音的踩坑之旅
2017/12/26 HTML / CSS
洛杉矶时尚女装系列:J.ING US
2019/03/17 全球购物
路政管理专业推荐信
2013/11/11 职场文书
决心书范文
2014/03/11 职场文书
政府门卫岗位职责
2014/04/29 职场文书
见习报告格式范文
2014/11/08 职场文书
军训心得体会范文(2016最新篇)
2016/01/11 职场文书
Mysql案例刨析事务隔离级别
2021/09/25 MySQL
使用canvas对video视频某一刻截图功能
2021/09/25 HTML / CSS
Python实现对齐打印 format函数的用法
2022/04/28 Python