服务器环境用的 laradock, https 证书是 certbot 生成的
项目代码是 laravel 7+ easywechat 5
token 接口地址 https://lide.huilaicar.com/wechat/serve
token:60166ea337d0d3d8f9b6be41ab44eb72
aes:wo5WGfuIBbeloj7BiygwBAyv9b0gucf5ieoPT5bru7k
本地 ngrok 可以通过验证,线上提交这个接口时,返回{ret: 200302, err_msg: "verify token fail"}
nginx 日志没有任何请求😂
网上找不到答案了…
Laravel Framework 7.28.1 "overtrue/laravel-wechat": "~5.0"
app/Http/Controllers/WechatController.php
<?php
namespace App\Http\Controllers;
class WechatController extends Controller
{
public function serve()
{
$app = app('wechat.official_account');
$app->server->push(function ($message) {
if ($message['Event'] === 'subscribe') {
return 'xxx';
} else {
return '222';
}
}, \EasyWeChat\Kernel\Messages\Message::EVENT);
return $app->server->serve();
}
}
routes/web.php
Route::any('/wechat/serve', 'WechatController@serve');
app/Http/Middleware/VerifyCsrfToken.php
protected $except = [
'/wechat/serve'
];
nginx
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name lide.huilaicar.com;
root /var/www/wx/public;
index index.php index.html index.htm;
ssl_certificate /var/certs/cert1.pem;
ssl_certificate_key /var/certs/privkey1.pem;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_pass php-upstream;
fastcgi_index index.php;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 600;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location /.well-known/acme-challenge/ {
root /var/www/letsencrypt/;
log_not_found off;
}
error_log /var/www/wx/storage/logs/laravel_error.log;
access_log /var/www/wx/storage/logs/laravel_access.log;
}
接口地址改
To Action From
-- ------ ----
443 ALLOW Anywhere
80 ALLOW Anywhere
1
vacker 2020-09-14 19:58:49 +08:00 via Android
又不能在公众号后台点提交怎么帮你测
最好贴代码 还有看看中间件排除路由没有 |
2
vacker 2020-09-15 00:35:24 +08:00 via Android
Nginx 日志都没有,看服务器防火墙开端口没有
|