laravel接管公众号的消息系统时公众号无法转发消息的处理
Posted houxin
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了laravel接管公众号的消息系统时公众号无法转发消息的处理相关的知识,希望对你有一定的参考价值。
laravel接管公众号的消息系统
公众号没有转发消息的处理
一、插件包安装
这里使用的插件包是laravel-wechat
。安装方式如下。
composer require overtrue/laravel-wechat
二、令牌(Token)认证配置
配置后台的服务器地址的时候,需要认证token。除了按照要求配置token外,还要满足,公众号的token的认证。
认证的时候,也很简单。注意是返回echostr
的值就行了
我的服务器的消息地址是:
http://bridge.4s2sda.cn/wechat/message
我的认证函数的内容为:
class MessageController extends Controller
{
// 接受消息处理
public function index(){
return $_GET["echostr"];
}
}
这样,在你提交的时候,才能保存成功。认证完成后,就不需要这个代码了,可以改动index
主题了,完成消息的发送。
三、消息发送
公众号在发送消息的时候,是以post的形式给你的xml数据。
所有你要到以下的两个点。
- 保证消息链接支持post
csrf
保护的中间件中,要排除消息的路由。
否则的话,公众号那边没法成功的把消息投递你的服务器的。
另外,注意,csrf
的排除是具体的链接wechat/message
,下面是我的代码
class VerifyCsrfToken extends Middleware
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
‘wechat/message‘
];
}
修改消息的发送的函数,测试代码如下:
class MessageController extends Controller
{
// 接受消息处理
public function index(){
$officialAccount = EasyWeChat::officialAccount(); // 公众号
$officialAccount->server->push(function ($message) {
$text = new Text(‘您好!overtrue。‘);
return $text;
});
return $officialAccount->server->serve();
}
}
此时,你向该公众号发送消息的时候,就会自动回复你您好!overtrue。
消息了
以上是关于laravel接管公众号的消息系统时公众号无法转发消息的处理的主要内容,如果未能解决你的问题,请参考以下文章