服務(wù)端
我們在企業(yè)微信應(yīng)用開啟接收消息的功能,將設(shè)置頁面的 token
與 aeskey
配置到 agents
下對應(yīng)的應(yīng)用內(nèi):
<?php
$config = [
// 企業(yè)微信后臺(tái)的 企業(yè) ID
'corpId' => 'xxxxxxxxxxxxxxxxx',
// 企業(yè)微信后臺(tái)的 secret
'corpSecret' => 'xxxxxxxxxxxxxxxxx',
// 企業(yè)微信后臺(tái)的 agentid
'agentId' => 100022,
// server config
'token' => 'xxxxxxxxx',
'aesKey' => 'xxxxxxxxxxxxxxxxxx',
//...
];
$work = \EasySwoole\WeChat\Factory::work($config);
接著配置服務(wù)端與公眾號的服務(wù)端用法一樣:
<?php
/** 注冊消息事件回調(diào) */
$work->server->push(function (\EasySwoole\WeChat\Kernel\Contracts\MessageInterface $message) {
return new \EasySwoole\WeChat\Kernel\Messages\Text('Hello EasySwoole WeChat!');
});
/** @var \Psr\Http\Message\ServerRequestInterface $psr7Request */
$psr7Request = $this->request();
$response = $work->server->serve($psr7Request);
/**
* $response 是一個(gè)顯式實(shí)現(xiàn)了 PSR-7 的對象,用戶只需要處理該對象即可正確響應(yīng)給微信
* 下面是一個(gè)使用 EasySwoole 的響應(yīng)方法
*/
$this->response()->withStatus($response->getStatusCode());
/**
* PSR-7 的 Header 并不是單純的 k => v 結(jié)構(gòu)
*/
foreach ($response->getHeaders() as $name => $values) {
$this->response()->withHeader($name, implode(", ", $values));
}
$this->response()->write($response->getBody()->__toString());
$response
是一個(gè)顯式實(shí)現(xiàn)了 PSR-7 的對象,用戶只需要處理該對象即可正確響應(yīng)給微信
具體使用可查看 公眾號-快速開始章節(jié)