Не приходят IPN уведомления laravel

176
06 декабря 2021, 19:10

у меня такой вопрос. Еще около двух лет назад я пытался поставить Payeer на Laravel, но безуспешно. Столкнулся с проблемой на мой настроенные роут попросту не приходит IPN нотификация. Вышел из положения создав отдельный php файл в директории паблик, но это костыли.

Сейчас работаю уже с другой системой, PrimePayeer, опыта стало больше, но ситуация аналогичная, пытаюсь разобраться и нигде не могу найти решения. На отдельный файл в директории /public нотификация сразу приходит. А на функцию по следующим настройкам - нет

Функции:

public function success() {
    Storage::put('success.txt', 'no ip check');
    return view('payment.success');
}
public function fail() {
    return view('payment.fail');
}
public function status(Request $request) {
    Storage::put('notok.txt', 'no ip check');
    try {
        $secret = env('PRIMEPAYER_SECRET');
        Storage::put('ok.txt', 'no ip check');
        if (!in_array(request()->ip(), ['109.120.152.109', '145.239.84.249', true])) {
            exit();
        }
        Storage::put('user.txt', 'user_id: '.$request->uv_user);
        $sign = $request->sign;
        unset($request->sign);
        $data = $request->all();
        ksort($data,SORT_STRING);
        $signi = hash('sha256', implode(':', $data).':'.$secret);
        if($signi !== $sign) {
            Storage::put('log.txt', $signi.'\n\n'.$sign.'\n'.'Incorrect Sign');
        }
        $user = User::findOrFail($request->uv_user);
        $user->balance += $request->amount;
        $user->save();
        return response()->setStatusCode(200);
    } catch (\Exception $e) {
        Storage::put('errors.txt', $e->getMessage());
    }
}

web.php:

Route::post('/success', 'HomeController@success');
Route::post('/fail', 'HomeController@fail');
Route::post('/status', 'HomeController@status');

VerifyCSRF Middleware:

VerifyCsrfToken extends Middleware
{
    /**
     * Indicates whether the XSRF-TOKEN cookie should be set on the response.
     *
     * @var bool
     */
    protected $addHttpCookie = true;
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        '/success',
        '/fail',
        '/status'
    ];
    }

Касательно файликов в функции статус. Ни один так и не создался. Что говорит о том что либо нотификация получила код 500, либо еще какой то статус код, который даже не дает выполниться элементарным функциям.

Очень хочется наконец-то разобрать IPN, ибо платежки больная тема. Кто сталкивался, подскажите пожалуйста как решить :)

READ ALSO
вложения в циклах foreach при парсинге

вложения в циклах foreach при парсинге

Нужна помощь есть html дерево где с помощью DomCrawler парсим нужные нам значения(имя товара и цена) сложность в том как из двух масивов сделать один(ключ...

171
PHP. Перестановка элементов массива

PHP. Перестановка элементов массива

Есть массив $X = [0,-5,-9,3,76,-99,-3,-4,101,-212,10,31]; Надо переставить отрицательные элементы из в начало массива, а положительные в конец, сохранив при этом...

196
Помощь в структуре базы данных mysqli

Помощь в структуре базы данных mysqli

нуждаюсь в совете либо в примере, как реализовать структуру бд, дл выполнения задачи

244
Как реализовать промокод с помощью PHP?

Как реализовать промокод с помощью PHP?

В корзине есть специальное поле(input например), в который если ввести необходимое значение - цена(вводимая js'ом) покупки должна уменьшиться

203