Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Согласно мануалам от Яндекс сервис Яндекс.Деньги отправляет http-запрос при пополнении кошелька на указанный адрес… подробно можно почитать, например, здесь https://learn.dkrylov.com/articles/php/poshagovaja-nastrojka-jandeks-dengi-s-http-uvedomlenijami_9
Я добавил роут в web.php
Route::post(’receive’, ’MoneyController@yandexReceive’)->name(’receive’);
Обработчик должен принять уведомлялку и сохранить в БД
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Payment;
use App\Log;
class MoneyController extends Controller
{
public function yandexReceive(Request $request){
$test_notification = false;
if ($request->has('test_notification')) {
$test_notification = $request->input('test_notification');
}
$log = new Log;
$log->data = $test_notification;
$log->save();
}
}
При отсылке тестового уведомления — результат 0.
Далее я сделал простую форму на локальном сервере для отсылки пост-запроса
<form method="post" action="http://site.ru/receive" enctype="application/x-www-form-urlencoded">
<input type="hidden" name="test_notification" value="true">
<input type="submit" value="Go!">
</form>
И что же? У меня открывается не запрошенная страница, а главная!
Где капать? Что курить? Подскажите!
Не в сети
А ларчик то просто открывается…
Наш любимый защитник VerifyCsrfToken блочит всех и вся,
Откройте посредник VerifyCsrfToken и добавьте исключения к роуту
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
//
'receive',
'receive/*',
];
}
Не в сети
Страницы 1