码迷,mamicode.com
首页 > 其他好文 > 详细

laravel接管公众号的消息系统时公众号无法转发消息的处理

时间:2020-05-21 14:50:58      阅读:53      评论:0      收藏:0      [点我收藏+]

标签:exclude   函数   保存   offic   接管   令牌   extend   使用   排除   

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数据。
所有你要到以下的两个点。

  1. 保证消息链接支持post
  2. 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接管公众号的消息系统时公众号无法转发消息的处理

标签:exclude   函数   保存   offic   接管   令牌   extend   使用   排除   

原文地址:https://www.cnblogs.com/hxsen/p/12930534.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!