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 相关文章推荐
PHP4之COOKIE支持详解
Oct 09 PHP
用PHP和ACCESS写聊天室(八)
Oct 09 PHP
逐步提升php框架的性能
Jan 10 PHP
Session服务器配置指南与使用经验的深入解析
Jun 17 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
Jun 24 PHP
使用ob系列函数实现PHP网站页面静态化
Aug 13 PHP
php实现上传图片保存到数据库的方法
Feb 11 PHP
PHP的Yii框架的常用日志操作总结
Dec 08 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
PHP 二级子目录(后台目录)设置二级域名
Mar 02 PHP
laravel Model 执行事务的实现
Oct 10 PHP
YII2框架中添加自定义模块的方法实例分析
Mar 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
一个odbc连mssql分页的类
2006/10/09 PHP
CI(CodeIgniter)框架中的增删改查操作
2014/06/10 PHP
基于PHP的简单采集数据入库程序
2014/07/30 PHP
WIN8.1下搭建PHP5.6环境
2015/04/29 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
Yii 使用intervention/image拓展实现图像处理功能
2019/06/22 PHP
Jquery中Ajax 缓存带来的影响的解决方法
2011/05/19 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
利用JS来控制键盘的上下左右键(示例代码)
2013/12/14 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
Javascript中类式继承和原型式继承的实现方法和区别之处
2017/04/25 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
webpack本地开发环境无法用IP访问的解决方法
2018/03/20 Javascript
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
[01:04:01]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第一场
2014/05/24 DOTA
python操作列表的函数使用代码详解
2017/12/28 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
Django框架的使用教程路由请求响应的方法
2018/07/03 Python
python删除字符串中指定字符的方法
2018/08/13 Python
Python3.5内置模块之time与datetime模块用法实例分析
2019/04/27 Python
python中的列表与元组的使用
2019/08/08 Python
Python生成器传参数及返回值原理解析
2020/07/22 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
浅析HTML5中的download属性使用
2019/03/13 HTML / CSS
美国新蛋IT数码商城:Newegg.com
2016/07/21 全球购物
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
屈臣氏越南官网:Watsons越南
2021/01/14 全球购物
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
师德标兵事迹材料
2014/12/19 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python