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 相关文章推荐
js下函数般调用正则的方法附代码
Jun 22 PHP
php判断字符以及字符串的包含方法属性
Aug 30 PHP
程序员编程十条戒律
Jul 09 PHP
php 图片加水印与上传图片加水印php类
May 12 PHP
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
Aug 22 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
Sep 19 PHP
PHP获取当前完整URL地址的函数
Dec 21 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
PHP线程的内存回收问题
Jul 08 PHP
基于CI框架的微信网页授权库示例
Nov 25 PHP
Zend Framework基于Command命令行建立ZF项目的方法
Feb 18 PHP
YII2自动登录Cookie总是失效的解决方法
Jun 28 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
一个很方便的 XML 类!!原创的噢
2006/10/09 PHP
php 验证码实例代码
2010/06/01 PHP
php页面防重复提交方法总结
2013/11/25 PHP
PHP四大安全策略
2014/03/12 PHP
php基于str_pad实现卡号不足位数自动补0的方法
2014/11/12 PHP
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
php防止sql注入的方法详解
2017/02/20 PHP
php写入文件不覆盖的实例讲解
2019/09/17 PHP
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
MUI 解决动态列表页图片懒加载再次加载不成功的bug问题
2017/04/13 Javascript
对node.js中render和send的用法详解
2018/05/14 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
详解适配器在JavaScript中的体现
2018/09/28 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
实现一个 Vue 吸顶锚点组件方法
2019/07/10 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
Python自动生产表情包
2017/03/17 Python
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
python3 实现对图片进行局部切割的方法
2018/12/05 Python
python Tkinter版学生管理系统
2019/02/20 Python
python读取xml文件方法解析
2020/08/04 Python
adidas旗下高尔夫装备供应商:TaylorMade Golf(泰勒梅高尔夫)
2016/08/28 全球购物
房屋买卖协议书
2014/04/10 职场文书
房屋买卖协议样本
2014/11/16 职场文书
2014年优秀党员材料
2014/12/18 职场文书
单身证明范本
2015/06/15 职场文书
教师节获奖感言
2015/07/31 职场文书
《初涉尘世》读后感3篇
2020/01/10 职场文书