Давайте напишу по порядку в одном сообщении, чтоб не было путаницы.
модуль официальный, от платежки paybox.money https://github.com/PayBox/module-opencart
POST по каким то причинам в нем не реализован, а это решило бы все.
При инициализации оплаты, на апи пейбокса GETом передаются ссылки callback, sucess, failure. Это помимо данных нужных для платежа.
Оплата на стороне платежки. Платеж проходит успешно, возвращает на succes url, тут тоже все ок. Но заказ ушел в потерянные с 0 статусом, так как callback не отработал
При обращении от апи платежки к колбеку, в ответ должент отдаваться XML: <response><pg_salt>p4VJ3Oanjl8RgdHg</pg_salt><pg_status>ok</pg_status>...
В ассess логе видно GET от платежки по урл колбека, со статусом 301, на этом все, платежка по редиректу не идет, XML не получает.
Изначально грешил на rewrite nginx'а, так как он в соло работает.
убирал все rewrite, чпу переставало работать, но по колбеку так и шел редирект.
Ставил апач, заводил на него без nginxa - ничего не изменилось
Но при отключении чпу в админке опенкарта, колбек отрабатывал как нужно, отдавая 200 и XML, без редиректов
Все видно в том же хроме, в network, с включенным preserve log
Запрос рабочий, подчистил личные данные, в место XML в ответ будет Incorrect signature!
Но внимательно просмотрев его текст, и то что будет в дресной строке при переходе, все станет ясно )
На данные момент, получается, что проблема есть при включенном ЧПУ, независимо от веб сервера и его настроек.
сделать ЧПУ вида extension/payment/paybox/callback - paybox_callback не помогает, в значениях параметров, передаваемых в ссылке все равно происходит замена с редиректом.
Причем замена идет в обе стороны )) где код %2F будет замена на /, а где + на %20
Вот для примера, при запросе pg_card_exp=05%2F18&pg_card_owner=SERGEY+SI, редиректит на pg_card_exp=05/18&pg_card_owner=SERGEY%20SI
Тех поддержка платежки, ожидаемо говорит, что обрабатывать редиректы и тем более менять get запросы не будут