W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
此擴(kuò)展可用于微信的服務(wù)號(hào)、訂閱號(hào)、企業(yè)號(hào)等功能開發(fā),在PhalApi框架下簡(jiǎn)單配置即可開發(fā)使用。
從 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
到此安裝完畢!接下是插件的配置。
為了讓微信擴(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è),從上到下依次處理。
如果覺得配置很多,可以只配置需要用到的消息類型。另外,如果你的配置是其他途徑存放的,也亦然。
可以按將下面的入口代碼得到你的項(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();
現(xiàn)在,快要過年了,各大企業(yè)都在派紅包,這里,我們也模擬一下微信服務(wù)號(hào)上紅包的派發(fā)。
通常地,當(dāng)我們需要添加一個(gè)新的微信服務(wù)號(hào)的功能時(shí),可以兩步走: 先開發(fā)插件,再注冊(cè)插件 。
很簡(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)行效果:
為了便于進(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>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: