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 相关文章推荐
通过html表格发电子邮件
Oct 09 PHP
如何使用PHP中的字符串函数
Nov 24 PHP
PHP获取表单textarea数据中的换行问题
Sep 10 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
Jul 13 PHP
ThinkPHP模板比较标签用法详解
Jun 30 PHP
在win7中搭建Linux+PHP 开发环境
Oct 08 PHP
Yii框架关联查询with用法分析
Dec 02 PHP
PHP自动生成表单代码分享
Jun 19 PHP
PHP微信开发之二维码生成类
Jun 26 PHP
zen cart实现订单中增加paypal中预留电话的方法
Jul 12 PHP
yii2学习教程之5种内置行为类详解
Aug 03 PHP
PHP回调函数简单用法示例
May 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
PHP版网站缓存加快打开速度的方法分享
2012/06/03 PHP
PHP编程风格规范分享
2014/01/15 PHP
php生成数组的使用示例 php全组合算法
2014/01/16 PHP
PHP全局变量与超级全局变量区别分析
2016/04/01 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
Ajax请求PHP后台接口返回信息的实例代码
2018/08/21 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
解决checkbox的attr(checked)一直为undefined问题
2014/06/16 Javascript
javascript表单验证和Window详解
2014/12/11 Javascript
jquery判断checkbox是否选中及改变checkbox状态的实现方法
2016/05/26 Javascript
JS实现的邮箱提示补全效果示例
2018/01/30 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
vue调用语音播放的方法
2019/09/27 Javascript
JavaScript实现简单的计算器
2020/01/16 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
[56:41]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs OG
2018/04/01 DOTA
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
浅谈python中列表、字符串、字典的常用操作
2017/09/19 Python
python 中的list和array的不同之处及转换问题
2018/03/13 Python
pytorch中tensor的合并与截取方法
2018/07/26 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
微信html5页面调用第三方位置导航的示例
2018/03/14 HTML / CSS
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
大学生学习生活的自我评价
2013/11/01 职场文书
有多年工作经验的自我评价
2014/03/02 职场文书
技术负责人任命书
2014/06/05 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
小学远程教育工作总结
2015/08/13 职场文书
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python