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

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 

<?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 

<?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);
    }
}

运行效果:

webwxgetmsgimg  

3.1.5 微信开发调试

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

$php ./Library/Wechat/Tests/send_wechat_text.php http://dev.wechat.com/weixin/ demo<xml><ToUserName><![CDATA[oWNXvjipYqRViMpO8GZwXxE43pUY]]></ToUserName><FromUserName><![CDATA[gh_43235ff1360f]]></FromUserName><CreateTime>1423821388</CreateTime><MsgType><![CDATA[news]]></MsgType><ArticleCount>1</ArticleCount><Articles><item><Title><![CDATA[让红包飞~]]></Title><Description><![CDATA[您已领取到一个85元红包~]]></Description><PicUrl><![CDATA[http://git.oschina.net/uploads/images/2015/0213/172906_61c8663a_121026.jpeg]]></PicUrl><Url><![CDATA[http://git.oschina.net/dogstar/PhalApi-Library]]></Url></item></Articles><FuncFlag>0</FuncFlag></xml>



转载于:https://my.oschina.net/dogstar/blog/375486

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值