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学习 函数 课件
Jun 15 PHP
PHP zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
PHP5常用函数列表(分享)
Jun 07 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
Jun 25 PHP
php用正则表达式匹配中文实例详解
Nov 06 PHP
ioncube_loader_win_5.2.dll的错误解决方法
Jan 04 PHP
详解PHP的Yii框架中日志的相关配置及使用
Dec 08 PHP
简单谈谈php浮点数精确运算
Mar 10 PHP
php metaphone()函数及php localeconv() 函数实例解析
May 15 PHP
PHP集成环境XAMPP的安装与配置
Nov 13 PHP
实例介绍PHP删除数组中的重复元素
Mar 03 PHP
解决laravel5.4下的group by报错的问题
Oct 16 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各种编码集详解和以及在什么情况下进行使用
2011/09/11 PHP
ThinkPHP Where 条件中常用表达式示例(详解)
2017/03/31 PHP
js针对ip地址、子网掩码、网关的逻辑性判断
2016/01/06 Javascript
js确认框confirm()用法实例详解
2016/01/07 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
详细解读Jquery各Ajax函数($.get(),$.post(),$.ajax(),$.getJSON())
2016/08/15 Javascript
JavaScript函数节流和函数防抖之间的区别
2017/02/15 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
JavaScript实现复选框全选和取消全选
2020/11/20 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
python 写的一个爬虫程序源码
2016/02/28 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
2019/05/03 Python
python使用time、datetime返回工作日列表实例代码
2019/05/09 Python
Django模型序列化返回自然主键值示例代码
2019/06/12 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
pandas实现将日期转换成timestamp
2019/12/07 Python
html5 worker 实例(一) 为什么测试不到效果
2013/06/24 HTML / CSS
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
上海天奕面试题笔试题
2015/04/19 面试题
优秀党员主要事迹
2014/01/19 职场文书
新教师岗前培训方案
2014/06/05 职场文书
小学生关于梦想的演讲稿
2014/08/22 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
故宫导游词
2015/01/31 职场文书
《你在为谁工作》心得体会(共8篇)
2016/01/20 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书
Go缓冲channel和非缓冲channel的区别说明
2021/04/25 Golang
Python提取PDF指定内容并生成新文件
2021/06/09 Python
mysq启动失败问题及场景分析
2021/07/15 MySQL
36个正则表达式(开发效率提高80%)
2021/11/17 Javascript