Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

GET вместо POST в модуле оплаты

Пишу новый модуль оплаты и мне необходимо послать curl'ом запрос, из которого получить ссылку для перехода на сайт платёжной системы с уже готовыми GET параметрами, либо самому сформировать ссылку и всунуть в неё параметры, но тогда я должен указать форме method='GET'. Я нашёл, какая функция в shopos рисует формы, нашёл куда передаётся этот POST/GET, но в модуле оплаты насколько я понял применение этой функции неприемлемо, т.к. shopos как-то вызывает эту функцию самостоятельно или же вобще отрисовывает форму не через неё.

Сделать изменение в модуле нужно где-то в функции process_button(), насолько я понял. Суть в том что в этой функции безполезно (поздно) менять $this->form_action_url - ничего не произойдёт. Однако именно в этой функции я планирую послать curl'ом запрос к платёжной системе и получить ссылку. У меня есть возможность все мои манипуляции провести, например, в функции before_process(), но, по-моему, это абсолютно неправильно.

В общем вопрос в том как внутри функции process_button() модуля изменить метод формы с POST на GET.



... т.к. shopos как-то вызывает эту функцию самостоятельно...


Нетрудно найти, что это в  checkout_confirmation.php  в строках

if (is_array($payment_modules->modules)) {
$payment_button .= $payment_modules->process_button();
}


А двумя строками выше можно увидеть, как задается метод отправки.



Сделать изменение в модуле нужно где-то в функции process_button(), насолько я понял. Суть в том что в этой функции безполезно (поздно) менять $this->form_action_url - ничего не произойдёт. Однако именно в этой функции я планирую послать curl'ом запрос к платёжной системе и получить ссылку.

Это, скорее всего,  неправильно.


В общем вопрос в том как внутри функции process_button() модуля изменить метод формы с POST на GET.

Никак, потому что эта функция формирует ВНУТРЕННЕЕ содержимое формы. А указание на метод отправки создается В ДРУГОМ МЕСТЕ (см. выше)


Это, скорее всего,  неправильно.

Не исключено, а где правильно? before_process()? payment_action()?


Чтоб на это ответить, надо знать подробности.  Какова цель запроса и что за ссылку планируете получить?


Планирую получить action url для формы и один GET параметр для неё. Запрос формирует платёж, в качестве ответа я получаю ссылку на страницу с формой(формами) продолжения платежа (ввод данных и т.д.). Страница находится на сайте платёжной системы. Т.е. это - ссылка, по которой я ухожу с магазина. Я могу вобще не пользоваться формами - нарисовать яваскрипт с переходом и до свидания, но куда его тогда воткнуть, а самое главное - зачем, если в CMS есть обыкновенные формы?..


Что-то слишком сложно. Обычно сразу  делают форму с параметрами, переходящую на платеж..
Если все же хотите по-своему, можете сделать, например, отдельную страницу,  где делаете свой запрос, потом редирект на полученный адрес. 


Спасибо за консультацию, буду думать.


Источник



Copyright ShopOS