Добрый день.
Подскажите пожалуйста, как лучше сделать, чтобы при оформлении заказа, после нажатия кнопки PlaceOrder, открывалась страница оплаты пользовательского метода, а не страница /checkout/onepage/success/. Либо чтобы на этой странице была форма оплаты.
Не указана версия маженты, но судя по урлу это вторая (2.2), а в ней по умолчанию работает одностраничный режим в корзине (onepage, причем когда я его отключал, моногостарничный вариант так и не заработал почему-то, пропадала кнопка оформить заказ). В общем там варианты оплаты на этойже странице должны быть отображены и если их нет, то надо либо включить их в настрйках в админке (stores->configuration->sales->payment methods) либо через UI Component добавлять (через свой модуль) путем передачи компонента в массив набора комопонентов под индексом steps в цепочке юи компонентов у модуля checkout (копать начинать с файла checkout_index_index.xml у модуля module-checkout, но добалять аргумент уже конечно же через свой лейаут). Но уже наверняка готовые модули на все случаи жизни есть.
Спасибо! Вроде разобрался. В версии 2.2 адрес страницы оплаты теперь надо указывать в UI компоненте, здесь нашел информацию https://webkul.com/blog/redirect-to-third-party-link-after-order-place-magento2/ . После нажатии кнопки PlaceOrder пользователь будет переброшен на эту страницу.
Хорошо если разобрались, но суть в том что как я понимаю сам метод оплаты надо проводить до place order'а т.к. он внесет уже оформленный заказ (с инфой по оплате) в систему, даже по вашей ссылке сказано что можно изменить урл на случай если сама транзакция была уже сделана.
(If in your magento, you have created a custom payment method, and using payment API for the transaction, and want to redirect to custom url after order place to complete transaction then, you can use following process.)
П.С. Просто на всякий случай уточнил, может я и неправ.
После нажатия Place Order заказ попадает в систему со статусом pending и открывается страница оплаты платежной системы. После оплаты снова возвращаемся в магазин, и заказу присваивается статус processing.