目前实现了简单的自定义菜单和自定义关键字回复功能
composer require phpcxy/wechat-manager
php artisan vendor:publish --tag=wechat-manager-migrations
php artisan migrate
php artisan admin:import wechat-manager
在.env写入以下配置
WECHAT_OFFICIAL_ACCOUNT_APPID=公众号appid
WECHAT_OFFICIAL_ACCOUNT_SECRET=公众号app secret
WECHAT_OFFICIAL_ACCOUNT_TOKEN=token
WECHAT_OFFICIAL_ACCOUNT_AES_KEY=
-
使用laravel-wechat调用微信SDK,具体使用请查看文档
-
菜单使用了model-tree来管理,编辑好菜单后点击
发布菜单
按钮进行发布 -
获取指定关键字的回复
$text = WechatManager::getReply('keyword');
即可返回该关键字设置的回复信息,如果该关键字有多个回复则会随机获取一个返回。
- 获取欢迎语回复
$text = WechatManager::getWelcomeReply();
使用laravel-wechat的话,可以在微信消息服务端那里这样使用
/**
* 接收微信消息和事件
* @param Request $request
* @return
*/
public function server(Request $request)
{
$wechat = app('wechat.official_account');
$wechat->server->push(function($message) {
$type = $message['MsgType'];
switch ($type) {
case 'text':
$content = $message['Content'];
$reply = WechatManager::getReply($content);
if ($reply) {
return $reply;
}
break;
case 'event':
// 菜单的点击回复使用了CLICK事件,所以需要在事件这里获取下回复内容
if ($message['Event'] === 'CLICK') {
$reply = WechatManager::getReply($message['EventKey'], 'menu');
if ($reply) {
return $reply;
}
}
break;
default:
return 'hello world';
break;
}
});
return $this->wechat->server->serve();
}