去年开始接触基于Weiphp的公众平台开发,一直没时间好好整理一下。

下面开始讲解第一个自定义weiphp插件:MyHello的开发流程。

1、插件创建。在weiphp管理后台依次点击“插件管理->创建插件”进入插件创建页面,填写插件的标识名、插件名、版本、作者、描述等信息,勾选“安装后是否启用”、“是否需要配置”两项,点击“确定”完成插件的创建。

2、插件安装。在插件管理列表中点击“安装”完成插件的安装。

3、插件管理。返回到weiphp管理前台,可以看到MyHello插件已经成功安装。

4、改写配置文件。在weiphp的addons目录下默认生成的MyHello插件文件夹下面改写默认生成的config.php,添加如下所示配置项。

  1. <?php
  2. return array(
  3. 'title'=>array(//配置在表单中的键名 ,这个会是config[random]
  4. 'title'=>'插件名称',//表单的文字
  5. 'type'=>'text', //表单的类型
  6. 'value'=>'MyHello',
  7. ),
  8. 'cover'=>array(//配置在表单中的键名 ,这个会是config[random]
  9. 'title'=>'封面',//表单的文字
  10. 'type'=>'picture', //表单的类型
  11. 'value'=>'',
  12. ),
  13. 'desc'=>array(//配置在表单中的键名 ,这个会是config[random]
  14. 'title'=>'描述',//表单的文字
  15. 'type'=>'textarea', //表单的类型
  16. 'value'=>'第一个自定义weiphp插件',
  17. ),
  18. 'reply_type'=>array(//配置在表单中的键名 ,这个会是config[random]
  19. 'title'=>'回复类型',//表单的文字
  20. 'type'=>'radio', //表单的类型
  21. 'options'=>array(
  22. '0'=>'文本消息',
  23. '1'=>'单图文消息',
  24. ),
  25. 'value'=>'0',
  26. ),
  27. );

5、查看配置项。可以看到配置文件已经正常响应。

6、微信响应。为WeixinAddonModel.class.php中编写微信响应代码。

  1. <?php
  2.  
  3. namespace Addons\Myhello\Model;
  4. use Home\Model\WeixinModel;
  5.  
  6. /**
  7. * Myhello的微信模型
  8. */
  9. class WeixinAddonModel extends WeixinModel{
  10. function reply($dataArr, $keywordArr = array()) {
  11. $config = getAddonConfig ( 'Myhello' ); // 获取后台插件的配置参数
  12. //dump($config);
  13. $title=$config['title'];
  14. $desc=$congig['desc'];
  15. $picurl=$config['cover']?get_cover_url($config['cover']):'';
  16. $url="http://baidu.com";
  17. $time=date('Y-m-d H:i:s',time());
  18.  
  19. /* $ans='';
  20. foreach($dataArr as $key=>$rs)
  21. {
  22. $ans.="[".$key."]=".$rs."\n";
  23. }
  24. $ans.="\n";
  25. foreach($keywordArr as $key=>$rs)
  26. {
  27. $ans.="[".$key."]=".$rs."\n";
  28. }*/
  29.  
  30. if($config['reply_type']==0)
  31. $this->replyText($title."\n".$time);
  32. else{
  33. $articles[0]=array(
  34. 'Title'=>$config['title'],
  35. 'Description'=>$config['desc'],
  36. 'PicUrl'=>$picurl,
  37. 'Url'=>$url
  38. );
  39. $this->replyNews($articles);
  40. }
  41. }
  42. }

7、编辑配置项。在后台配置页面填写配置信息,上传封面图片,并点“确定”提交配置项。

8、微信测试。在微信中回复“我的插件”或者“MyHello”时,根据配置项中选择的回复类型是“文本消息”还是“单图文消息”来进行回复。

欢迎关注我的个人测试公众账号:FM1994~一起交流学习。

再谈Weiphp公众平台开发——1、增加插件的更多相关文章

  1. 再谈Weiphp公众平台开发——1、成语接龙插件

    易错点,注意插件的命名 1.创建插件.在weiphp管理后台创建成语接龙插件,勾选安装后立即启用,不需要配置项和管理列表.点“确定”完成插件的创建. 2.安装插件. 3.检测插件是否成功安装.返回到w ...

  2. 微信公众平台开发:Web App开发入门

    WebApp与Native App有何区别呢?Native App:1.开发成本非常大.一般使用的开发语言为JAVA.C++.Objective-C.2.更新体验较差.同时也比较麻烦.每一次发布新的版 ...

  3. [转]抢先Mark!微信公众平台开发进阶篇资源集锦

    FROM : http://www.csdn.net/article/2014-08-01/2820986 由CSDN和<程序员>杂志联合主办的 2014年微信开发者大会 将于8月23日在 ...

  4. Senparc.Weixin.MP SDK 微信公众平台开发教程(十七):个性化菜单接口说明

    前不久微信上线了个性化菜单接口,Senparc.Weixin SDK也已经同步更新. 本次更新升级Senparc.Weixin.MP版本到v13.5.2,依赖Senparc.Weixin版本4.5.4 ...

  5. 【原创】【2015最新】微信公众平台开发手把手入门之一:缘起微信公众号(PHP,MYSQL, BAE)

    最近因为业务的需要,老板布置做了两个月简单的的微信公众平台开发,从网上搜了一些资料,实话说资料不多. 在参考学习的过程中也遇到了不少难缠的小问题,虽然不难逾越,但是确实浪费了时间. 我发现网上仅有不多 ...

  6. Senparc.Weixin.MP SDK 微信公众平台开发教程(四):Hello World

    =============  以下写于2013-07-20 ============= 这一篇文章其实可以写在很前面,不过我还是希望开发者们尽多地了解清楚原理之后再下手. 通过上一篇Senparc.W ...

  7. Senparc.Weixin.MP SDK 微信公众平台开发教程(七):解决用户上下文(Session)问题

    从这篇文章中我们已经了解了微信公众平台消息传递的方式,这种方式有一个先天的缺陷:不同用户的请求都来自同一个微信服务器,这使得常规的Session无法使用(始终面对同一个请求对象,况且还有对方服务器Co ...

  8. Senparc.Weixin.MP SDK 微信公众平台开发教程(十二):OAuth2.0说明

    紧接上一篇<Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明>,这里专讲OAuth2.0. 理解OAuth2.0 首先我们通过一张图片来了解一下OAu ...

  9. Senparc.Weixin.MP SDK 微信公众平台开发教程(十四):请求消息去重

    为了确保信息请求消息的到达率,微信服务器在没有及时收到响应消息(ResponseMessage)的情况下,会多次发送同一条请求消息(RequestMessage),包括MsgId等在内的所有文本内容都 ...

随机推荐

  1. JavaWeb学习笔记——开发动态WEB资源(五)servlet身份验证

    本工程的功能是实现Javaweb的servlet身份验证 一下是login.html文件中的代码 <!DOCTYPE html> <html> <head> < ...

  2. Maven概览

    Maven的核心思想,约定由于配置 1 Maven坐标 1.1 本项目的坐标 groupId: 必须.项目组名称,定义当前Maven项目所隶属的实际项目,通常与域名反向一一对应,与Java包名表示方式 ...

  3. MBProgressHUD+FastCall

    + (void)showHudTipStr:(NSString *)tipStr; + (void)showHudTipStr:(NSString *)tipStr{ ) { MBProgressHU ...

  4. python错误

    1.IndentationError: unindent does not match any outer indentation level   原因:一般是代码没有对齐   参考网址: http: ...

  5. How to know if file is complete on the server using FTP

    This is a very old and well-known problem. There is no way to be absolutely certain a file being wri ...

  6. mysql和oracle的区别(功能性能、选择、使用它们时的sql等对比)

    一.并发性 并发性是oltp数据库最重要的特性,但并发涉及到资源的获取.共享与锁定. mysql:mysql以表级锁为主,对资源锁定的粒度很大,如果一个session对一个表加锁时间过长,会让其他se ...

  7. scp命令的用法详解

    这篇文章主要是参考了http://blog.csdn.net/jiangkai_nju/article/details/7338177这个博客,要看详细的内容可以参考这个博客进行学习研究,但是我觉得在 ...

  8. openssh for windows安装

     openssh for windows安装 2009-11-22 22:43:58 分类: WINDOWS 本文转自:http://blog.chinaunix.net/uid-7541208-id ...

  9. 8-Highcharts曲线图之对数直线图

    <!DOCTYPE> <html lang='en'> <head> <title>8-Highcharts曲线图之对数直线图</title> ...

  10. C# Winform 脱离 Framework (一)

    Linker是一个命令行工具,它以将我们的.net程序生成可脱离.net framework环境运行的程序 . Linker不支持中文的路径,在程序中也不能有中文的标识符. Linker 有2种部署方 ...