Coder Social home page Coder Social logo

Comments (18)

overtrue avatar overtrue commented on August 18, 2024

贴你的代码

from laravel-wechat.

pifeifei avatar pifeifei commented on August 18, 2024

贴你的代码

基本就是根据 readme 文档写的。vendor 目录有删掉重新 install

// 路由 : 
Route::any('/wechat', [\App\Http\Controllers\WeChatController::class, 'serve']);

Route::group(['middleware' => ['web', 'wechat.oauth:default,snsapi_userinfo']], function () {
    Route::get('/user', function () {
        $user = session('wechat.oauth_user.default'); // 拿到授权用户资料

        dd($user);
    });
});
<?php

namespace App\Http\Controllers;

use Log;

class WeChatController extends Controller
{

    /**
     * 处理微信的请求消息
     *
     * @return string
     */
    public function serve() // 这里不能有 : string
    {
        Log::info('request arrived.'); # 注意:Log 为 Laravel 组件,所以它记的日志去 Laravel 日志看,而不是 EasyWeChat 日志

        $app = app('wechat.official_account');
        $app->server->push(function($message){
            Log::info(__FILE__.'::'.__LINE__, func_get_args());
            return "欢迎关注 overtrue!";
        });

        return $app->server->serve();
    }
}

对了,我用的是测试公众号, 不过应该不影响才对
https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?action=showinfo&t=sandbox/index

from laravel-wechat.

overtrue avatar overtrue commented on August 18, 2024

用浏览器测试呢?

from laravel-wechat.

overtrue avatar overtrue commented on August 18, 2024
image

from laravel-wechat.

pifeifei avatar pifeifei commented on August 18, 2024

image

原生和美化是一样的

image

curl 我也试了, 有 2 个 http,

from laravel-wechat.

pifeifei avatar pifeifei commented on August 18, 2024

我打算试下laravel 9.x 的原始版本, 看看行不行

from laravel-wechat.

overtrue avatar overtrue commented on August 18, 2024

所以现在是什么版本?

from laravel-wechat.

pifeifei avatar pifeifei commented on August 18, 2024

所以现在是什么版本?

overtrue/laravel-wechat: 6.2.0
w7corp/easywechat: 5.35.1
laravel: v9.52.16

# git reset --hard origin/9.x

php artisan serve

curl -i  'http://127.0.0.1:8000/wechat?echostr=5314236442487000783&nonce=2036361721&signature=ea5ec21b511a1731c0988b84d367a6cfe64bb876&timestamp=1716881487'

问题还是存在

from laravel-wechat.

pifeifei avatar pifeifei commented on August 18, 2024

image

跟这个输出挺像的

from laravel-wechat.

overtrue avatar overtrue commented on August 18, 2024

那不是你自己打印的么……

from laravel-wechat.

overtrue avatar overtrue commented on August 18, 2024

我本地重新装了一个项目没法复现。

from laravel-wechat.

overtrue avatar overtrue commented on August 18, 2024

应该是你自己改了啥代码导致的

from laravel-wechat.

pifeifei avatar pifeifei commented on August 18, 2024

应该是你自己改了啥代码导致的

App\Http\Controllers\WeChatController

这个类的内容是什么?

我用laravel 官网下的源码也是有这个问题, 不知道是不是源的问题。我重新下载一下试试

php : 8.1.25

from laravel-wechat.

pifeifei avatar pifeifei commented on August 18, 2024

应该是你自己改了啥代码导致的

image

接口没有手动打印, 那个是 测试的命令行

重新拉取 也是不行

php : 8.1.25
laravel: 9.52.16
overtrue/laravel-wechat: 6.2.0
w7corp/easywechat: 5.35.1

我找找其他吧

from laravel-wechat.

pifeifei avatar pifeifei commented on August 18, 2024
return $app->server->serve();
// 这段代码改成下面的就可以了
return $app->server->serve()->getContent();

什么情况

from laravel-wechat.

overtrue avatar overtrue commented on August 18, 2024

把项目全删了,重新换个名字的目录重装

from laravel-wechat.

pifeifei avatar pifeifei commented on August 18, 2024

把项目全删了,重新换个名字的目录重装

image

我重新下载的 laravel 还是一样, 哪个环节的问题,正常不应改这样啊

git clone https://github.com/laravel/laravel.git laravel-testt

git checkout -b 9.x origin/9.x

git log -2
# commit 5b60b604c4167b30286a6e033723a6b274e8452d (HEAD -> 9.x, origin/9.x)

php -v
#PHP 8.1.27 (cli) (built: Dec 19 2023 23:26:33) (NTS Visual C++ 2019 x64)

composer install

composer require overtrue/laravel-wechat

# 该路由、WeChatController、 http\kernel 等

php artisan route:list
# ANY        wechat .......WeChatController@serve


curl -i 'http://127.0.0.1:8000/wechat?echostr=5314236442487000783'

image

可以想到的都改了, 试试 xdebug 了

from laravel-wechat.

pifeifei avatar pifeifei commented on August 18, 2024

把项目全删了,重新换个名字的目录重装

找到原因了, 谢谢

最近用 laravel/pint 比较多,习惯性的设置返回值,这里搞错了,

use Symfony\Component\HttpFoundation\Response as SymfonyResponse;

class WeChatController extends Controller
{
    /**
     * 处理微信的请求消息
     *
     * @return string
     */
    public function serve(): SymfonyResponse // string 习惯性的就放下来了, 就返回字符串
    {
    }
}

是我的粗心, 后面我看看改成什么

再次感谢作者。

from laravel-wechat.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.