微信開發(fā)

2018-11-21 21:31 更新

3.1.1 擴(kuò)展類庫(kù):微信開發(fā)

此擴(kuò)展可用于微信的服務(wù)號(hào)、訂閱號(hào)、企業(yè)號(hào)等功能開發(fā),在PhalApi框架下簡(jiǎn)單配置即可開發(fā)使用。

3.1.2 安裝和配置

(1)擴(kuò)展包下載

 PhalApi-Library 擴(kuò)展庫(kù)中下載獲取 Wechat 微信包,如使用:

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

然后把 Wechat 目錄復(fù)制到 ./PhalApi/Library/ 下,即:

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

到此安裝完畢!接下是插件的配置。

(2)擴(kuò)展包配置

為了讓微信擴(kuò)展包能接收來自微信服務(wù)器的信息以及返回信息給用戶,我們需要在 ./Config/app.php 配置文件中追加以下配置:


    /**
     * 插件注冊(cè) - 項(xiàng)目級(jí)重用
     */
  '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(),
    ),
  )

簡(jiǎn)單說明一下上面配置的作用,很明顯,Key為對(duì)應(yīng)的消息類型,如:文本、位置、語音、圖片等;然后是各種消息類型對(duì)應(yīng)的處理的類名,可以有多個(gè),從上到下依次處理。
如果覺得配置很多,可以只配置需要用到的消息類型。另外,如果你的配置是其他途徑存放的,也亦然。

3.1.3 入門使用

(1)微信入口文件

可以按將下面的入口代碼得到你的項(xiàng)目下:

//$ 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';

//裝載項(xiàng)目代碼和擴(kuò)展類庫(kù)
DI()->loader->addDirs(array('Demo', 'Library'));

/** ---------------- 微信輕聊版 ---------------- **/

$robot = new Wechat_Lite('YourTokenHere...', true);
$rs = $robot->response();
$rs->output();

特別地 ,當(dāng)首次接入微信時(shí),需要將開頭的兩句注釋去掉,以便通過微信的驗(yàn)證,即:

// echo $_GET['echostr'];
// die();

3.1.4 示例:讓紅包飛

(1)業(yè)務(wù)場(chǎng)景

現(xiàn)在,快要過年了,各大企業(yè)都在派紅包,這里,我們也模擬一下微信服務(wù)號(hào)上紅包的派發(fā)。

通常地,當(dāng)我們需要添加一個(gè)新的微信服務(wù)號(hào)的功能時(shí),可以兩步走: 先開發(fā)插件,再注冊(cè)插件 。

(2)開發(fā)插件

很簡(jiǎn)單地:

// $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('您已領(lǐng)取到一個(gè)%d元紅包~', rand(1, 100)))
            ->setPicUrl('http://webtools.qiniudn.com/172906_61c8663a_121026.jpeg')
            ->setUrl('http://git.oschina.net/dogstar/PhalApi-Library');

        $outMessage->addItem($item);
    }
}

運(yùn)行效果:

webwxgetmsgimg

3.1.5 微信開發(fā)調(diào)試

為了便于進(jìn)行微信開發(fā)的調(diào)試,我們專門提供了一個(gè)快速模擬微信請(qǐng)求的腳本。以下是對(duì)上面發(fā)紅包的模擬請(qǐng)求:

$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[您已領(lǐng)取到一個(gè)85元紅包~]]></Description>
<PicUrl><![CDATA[http://webtools.qiniudn.com/172906_61c8663a_121026.jpeg]]></PicUrl>
<Url><![CDATA[http://git.oschina.net/dogstar/PhalApi-Library]]></Url>
</item>
</Articles>
<FuncFlag>0</FuncFlag>
</xml>

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)