нужна помощь с mod_rewrite Есть решение

нужно сделать rewrite с 

site/callback.php?query

 на 

site/payments.php/mypay/?query

перепробывал разные варианты... почему то выдает 404 при срабатывании условия

2 ответа

  • 1
    greencity116 21 сентября 2018 23:14 #

    Проблема в том что код из waSystem.class.php обрабатывается после mod_rewrite

    // Payment callback?
    if (!strncmp($request_url, 'payments.php/', 13)) {
    $url = substr($request_url, 13);
    if (preg_match('~^([a-z0-9_]+)~i', $url, $m) && !empty($m[1])) {
    $module_id = $m[1];
    waRequest::setParam('module_id', $module_id);
    wa('webasyst', 1)->getFrontController()->execute(null, 'payments');
    }
    return;
    }

    и банальный mod_rewrite не срабатывает

  • 1
    greencity116 21 сентября 2018 23:18 # Решение

    Решилось так, может кому нужно изменить стандартную страницу обработчика колбэков


    wa-system/waSystem.class.php

    Находим 

    // Payment callback?
    if (!strncmp($request_url, 'payments.php/', 13)) {
    $url = substr($request_url, 13);
    if (preg_match('~^([a-z0-9_]+)~i', $url, $m) && !empty($m[1])) {
    $module_id = $m[1]; var_dump($module_id);
    waRequest::setParam('module_id', $module_id);
    wa('webasyst', 1)->getFrontController()->execute(null, 'payments');
    }
    return;
    }

    ---------------------

    Дописываем

    if (!strncmp($request_url, 'callback.php', 12)) {
    $module_id = 'ИМЯ_ВАШЕГО_ПЛАТЕЖНОГО_МОДУЛЯ';
    waRequest::setParam('module_id', $module_id);
    wa('webasyst', 1)->getFrontController()->execute(null, 'payments');
    return;
    }

    В данном случае по адресу Site/callback.php?params

    будет происходить обработка колбэков, также как и  по основному адресу

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите