3.1.1 扩展类库:微信开发

此扩展可用于微信的服务号、订阅号、设备号等功能开发,则PhalApi框架下简单配置即可开发使用。

3.1.2 安装和配置

(1)扩展包下载

从  PhalApi-Library  扩展库中下载获取 Wechat 微信包,如使用:

git clone https://git.oschina.net/dogstar/PhalApi-Library.git

然后把 Wechat 目录复制到 ./PhalApi/Library/ 下,即:

cp ./PhalApi-Library/Wechat/ ./PhalApi/Library/ -R

到处安装完毕!接下是插件的配置。

(2)扩展包配置

为了让微信扩展包能接收来自微信服务器的信息以及返回信息给用户,我们需要在 ./Config/app.php 配置文件中追加以下配置:

/**

* 插件注册 - 项目级重用

*/

'Wechat' => array(

'plugins' => array(

Wechat_InMessage::MSG_TYPE_TEXT => array('Plugin_Menu',),

Wechat_InMessage::MSG_TYPE_IMAGE => array(),

Wechat_InMessage::MSG_TYPE_VOICE => array(),

Wechat_InMessage::MSG_TYPE_VIDEO => array(),

Wechat_InMessage::MSG_TYPE_LOCATION => array(),

Wechat_InMessage::MSG_TYPE_LINK => array(),

Wechat_InMessage::MSG_TYPE_EVENT => array(),

Wechat_InMessage::MSG_TYPE_DEVICE_EVENT => array(),

Wechat_InMessage::MSG_TYPE_DEVICE_TEXT => array(),

),

)

简单说明一下上面配置的作用,很明显,Key为对应的消息类型,如:文本、位置、语音、图片等;然后是各种消息类型对应的处理的类名,可以有多个,从上到下依次处理。

如果觉得配置很多,可以只配置需要用到的消息类型。另外,如果你的配置是其他途径存放的,也亦然。

3.1.3 入门使用

(1)微信入口文件

可以按将下面的入口代码得到你的项目下:

//$ vim ./Public/weixin/index.php

// echo $_GET['echostr'];

// die();

if (!isset($GLOBALS['HTTP_RAW_POST_DATA'])) {

die('Access denied!');

}

require_once dirname(__FILE__) . '/../init.php';

//装载项目代码和扩展类库

DI()->loader->addDirs(array('Demo', 'Library'));

/** ---------------- 微信轻聊版 ---------------- **/

$robot = new Wechat_Lite('YourTokenHere...', true);

$rs = $robot->response();

$rs->output();

特别地 ,当首次接入微信时,需要将开头的两句注释去掉,以便通过微信的验证,即:

// echo $_GET['echostr'];

// die();

3.1.4 示例:让红包飞

(1)业务场景

现在,快要过年了,各大企业都在派红包,这里,我们也模拟一下微信服务号上红包的派发。

通常地,当我们需要添加一个新的微信服务号的功能时,可以两步走: 先开发插件,再注册插件 。

(2)开发插件

很简单地:

// $vim ./Demo/Plugin/Money.php

class Plugin_Money implements Wechat_Plugin_Text {

public function handleText($inMessage, &$outMessage) {

$outMessage = new Wechat_OutMessage_News();

$item = new Wechat_OutMessage_News_Item();

$item->setTitle('让红包飞~')

->setDescription(sprintf('您已领取到一个%d元红包~', rand(1, 100)))

->setPicUrl('http://git.oschina.net/uploads/images/2015/0213/172906_61c8663a_121026.jpeg')

->setUrl('http://git.oschina.net/dogstar/PhalApi-Library');

$outMessage->addItem($item);

}

}

运行效果:

3.1.5 微信开发调试

为了便于进行微信开发的调试,我们专门提供了一个快速模拟微信请求的脚本。以下是对上面发红包的模拟请求:

$php ./Library/Wechat/Tests/send_wechat_text.php http://dev.wechat.com/weixin/ demo142382138810

phalapi init.php,PhalApi:[3.1] 扩展类库:微信开发相关推荐

  1. php 邮件类库,[3.3]-扩展类库:基于PHPMailer的邮件发送 | PhalApi(π框架) - PHP轻量级开源接口框架 - 接口,从简单开始!...

    3.3.1 扩展类库:基于PHPMailer的邮件发送 此扩展可用于发送邮件. 3.3.2 安装和配置 从 PhalApi-Library 扩展库中下载获取 PHPMailer 包,如使用: $ gi ...

  2. PhalApi:[3.1] 扩展类库:微信开发

    2019独角兽企业重金招聘Python工程师标准>>> 3.1.1 扩展类库:微信开发 此扩展可用于微信的服务号.订阅号.设备号等功能开发,则PhalApi框架下简单配置即可开发使用 ...

  3. Canvas 类库ZRender开发的接水果的小游戏

    最近使用了轻量级的 Canvas 类库 ZRender开发了一些自定义图件,所以想试试用zrender开发小游戏怎么样,自己也没什么经验,所以写着玩吧,可能有些逻辑部分写的不是很好..这个小游戏很简单 ...

  4. 小程序子组件向父组件传值_一套组件化、可复用、易扩展的微信小程序 UI 组件库...

    如何使用 Wux Weapp 是一套组件化.可复用.易扩展的微信小程序 UI 组件库.在开始使用之前,需要先阅读微信小程序自定义组件的相关文档. 通过 npm 安装,需要依赖小程序基础库 2.2.1 ...

  5. 实战-Ueditor扩展二次开发

    第一部分 开发前期准备  1.UEditor从1.4.1开始,添加对于二次开发的扩展支持. Jeewx扩展二次开发采用1.4.3.1 Jsp 版本 2.上传图片设置 简述: UE做的不够灵活,不如老版 ...

  6. itchat4j -- 用Java扩展个人微信号的能力

    itchat4j – 用Java扩展个人微信号的能力 项目地址:itchat4j,该项目长期维护更新,欢迎star.fork. pull requests. issue. 来源 itchat是一个非常 ...

  7. android仿微信发布动态功能,Android GridView扩展仿微信微博发图动态添加删除图片功能.pdf...

    Android GridView扩扩展展仿仿微微信信微微博博发发图图动动态态添添加加删删除除图图片片功功能能 这篇文章主要为大家详细介绍了Android GridView扩展仿微信微博发图动态添加删除 ...

  8. 手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单

    手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单 参考地址为:手把手教你开发chrome扩展一:开发Chrome Extenstion其实很简单

  9. 一位前端开发者的计算机视觉学习之路——专访《Chrome扩展及应用开发》作者李喆

    李喆从2011年开始接触Chrome扩展程序开发并发布了多款扩展程序,同年10月,他收到了新浪微博前端高级工程师职位的offer,次年4月火狐邀请他参与火狐浏览器扩展开发的工作.现在,李喆是吉林大学电 ...

最新文章

  1. boost::copy相关的测试程序
  2. mysql多字段修改update_MySQL ------ 触发器(TRIGGER)(二十七)
  3. android自定义控件实例
  4. childnodes 兼容性问题
  5. 【美文保存】nosql数据库对比以及如何巧妙利用redis来提高效率?
  6. 防火墙--iptables
  7. python遍历字典与for循环运用方法
  8. java基础知识---IO常用基础操作(二)
  9. Linux 最常用 的150 个命令汇总
  10. 阿里第九版Java系统架构师+应用架构师面试突击宝典
  11. 非线性鲁棒控制器_Sliding Mode_滑模控制
  12. 4. gstimxv4l2src.c源码分析
  13. java 格林尼治生僻时间转换
  14. MSM8916 海信M9模块学习记录一:编译及烧录android5.1源码
  15. 如何在Abaqus中用扫掠的方法画六面体网格
  16. python web论坛_十个基于Python的BBS论坛类开源web框架汇总(附源码地址)
  17. 腾讯云香港轻量新IP段简单测评
  18. CSS揭秘——毛玻璃效果
  19. Mixly(米思齐)的安装以及实现光控小夜灯
  20. 【不定时推荐】这些年读过的书第一本--《一个人的朝圣》

热门文章

  1. ‘.torch/models/resnet50-19c8e357.pth1lxckllg.tmp‘
  2. Axure RP Pro 7.0注册Key
  3. PSN下载加速相关程序教程(PS3.ProxyServer和PSN DM)
  4. 最强绘图AI:一文搞定Midjourney(附送咒语)
  5. 【机器学习】SHAP- 机器学习模型解释可视化工具
  6. 在axure中使用echarts
  7. 2022年二建《建筑工程法规及相关知识》模拟考试试题及答案
  8. 我在阿里干些啥?大学怎么过,才能去大厂实习?
  9. 良许Linux | Linux学习方法及学习资料汇总
  10. java 非模态_JavaScrip高级应用:操作模态与非模态对话框