Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Как подключить PayBox, платежная система (чекаут)


Recommended Posts

При подключении платежной системы к сайту, есть возможность отобразить платеж всплывающим окном http://prntscr.com/1bg4aap

Так же есть инструкция https://paybox.money/docs/#5e5c93b7d5 как подключить данный способ.

Но не могу понять, как этот код применить. В тех поддержке ничем помочь не могут и кидают на данную инструкцию.

Уже пару дней провисел с этим и не могу разобраться.

Может кто подскажет как внедрить эту штуку?

Надіслати
Поділитися на інших сайтах


Можно подключить создав новый платежный модуль или переделав один из стандартных, например "Оплата наличными". Всего лишь нужно добавить в шаблон модуля оплаты эти js-скрипты (из инструкции) подставив туда данные заказа из сессии и добавить на кнопку оплаты onclick с вызовом js-функции pay()

Надіслати
Поділитися на інших сайтах


8 часов назад, ocbot сказал:

Можно подключить создав новый платежный модуль или переделав один из стандартных, например "Оплата наличными". Всего лишь нужно добавить в шаблон модуля оплаты эти js-скрипты (из инструкции) подставив туда данные заказа из сессии и добавить на кнопку оплаты onclick с вызовом js-функции pay()

Принцип то понятен. В js и php я не разбираюсь, что куда подставлять не пойму. Тех поддержка вообще никакая, как с Марса пишут, в день 1 сообщение. Может и не стоит ее вообще использовать.

Змінено користувачем DenPo
Надіслати
Поділитися на інших сайтах


В 16.07.2021 в 14:49, ocbot сказал:

Можно подключить создав новый платежный модуль или переделав один из стандартных, например "Оплата наличными". Всего лишь нужно добавить в шаблон модуля оплаты эти js-скрипты (из инструкции) подставив туда данные заказа из сессии и добавить на кнопку оплаты onclick с вызовом js-функции pay()

У них ошибка в коде была: http://prntscr.com/1dwilp1 нужны были верхние ковычки добавить где токен.

Но сейчас не могу вывести переменную при клике "оплатить" сумму заказа в сплывающем окне.

Надіслати
Поділитися на інших сайтах


22 година назад, DenPo сказав:

Но сейчас не могу вывести переменную при клике "оплатить" сумму заказа в сплывающем окне.

Не можете сумму заказа получить?
В контроллере модуля оплаты (catalog/controller/extension/payment/*.php) нужно сформировать и передать сумму:

$order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
$data['amount'] = $this->currency->format($order_info['total'], $order_info['currency_code'], $order_info['currency_value'], false);

И тогда в шаблоне кнопки "оплатить" добавляете ей атрибут onclick="pay('{{ amount }}')",

Надіслати
Поділитися на інших сайтах


20 часов назад, ocbot сказал:

Не можете сумму заказа получить?
В контроллере модуля оплаты (catalog/controller/extension/payment/*.php) нужно сформировать и передать сумму:


$order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
$data['amount'] = $this->currency->format($order_info['total'], $order_info['currency_code'], $order_info['currency_value'], false);

И тогда в шаблоне кнопки "оплатить" добавляете ей атрибут onclick="pay('{{ amount }}')",

Пришлось заказать услугу, я бы такое не сделал. Да, там в контроллере правки нужны были и форму платежа донастроить надо было.
Но по факту, лучше для сайта чекаут не использовать как по мне. Корзина после покупки не очищается, заказы уходят в пропавшие. Так-то оно хорошо, но вот эти моменты заставляют задуматься. Больше наверное для одностраничников подходит, лендинг там и т.д. 

Надіслати
Поділитися на інших сайтах


1 годину назад, DenPo сказав:

Корзина после покупки не очищается, заказы уходят в пропавшие.

Нужно правильно настроить и все будет работать как положено. В документации вашей платежки есть информация об этом Получение статуса платежа. После оплаты покупателем, ваш сайт получает уведомление через коллбэки, которые передаются в параметрах

То есть, в форме оплаты нужно передавать url обработчика ответов, который как раз будет чистить сессию и менять статус заказа после оплаты.
У этой платежки есть официальный модуль на Github, там можно посмотреть методы check() и callback(), которые как раз обрабатывают эти ответы. Или вообще можно установить этот модуль, настроить, и отдавать в вашей форме его callback url.

Змінено користувачем ocbot
добавлено предложение
Надіслати
Поділитися на інших сайтах


В 23.07.2021 в 13:35, ocbot сказал:

Нужно правильно настроить и все будет работать как положено. В документации вашей платежки есть информация об этом Получение статуса платежа. После оплаты покупателем, ваш сайт получает уведомление через коллбэки, которые передаются в параметрах

То есть, в форме оплаты нужно передавать url обработчика ответов, который как раз будет чистить сессию и менять статус заказа после оплаты.
У этой платежки есть официальный модуль на Github, там можно посмотреть методы check() и callback(), которые как раз обрабатывают эти ответы. Или вообще можно установить этот модуль, настроить, и отдавать в вашей форме его callback url.

Скинул программисту ваш коммент, два дня он промучился но лишь смог сделать только очищение корзины. С пропавшими заказами так и не смог разобраться.  Хотя на стандартном модуле от платежки все четко отрабатывает.

Надіслати
Поділитися на інших сайтах


20 годин назад, DenPo сказав:

С пропавшими заказами так и не смог разобраться.

Никогда не работал с этой платежкой, но выглядит все довольно просто, документация доступно написана, готовый модуль есть с примером реализации.
Разбираете данные, которые приходят в ответе от платежки, если статус заказа оплачен ($this->request->post['pg_result'] == 1) - меняете его статус:

$this->load->model('checkout/order');
$this->model_checkout_order->addOrderHistory($order_id, $order_status_id);

Здесь $order_id - это номер заказа, платежка его передает ($this->request->post['pg_order_id']) или из сессии можно получить; $order_status_id - это id нужного успешного статуса заказа, можете посмотреть в админке, там где статусы заказов настраиваются в Система : Локализация : Статусы заказов. Если из коробки в OpenCart ничего не меняли, по умолчанию у статуса "Сделка завершена" (Complete) будет id = 5
В итоге, для смены статуса заказа у вас получится код:

if ((int)$this->request->post['pg_result'] == 1) {
$order_id = (int)$this->request->post['pg_order_id'];
$order_status_id = 5;
$this->load->model('checkout/order');
$this->model_checkout_order->addOrderHistory($order_id, $order_status_id);
}

Конечно, это минимальный код, который будет работать. По хорошему, нужно еще предварительно делать проверку секретного ключа и наличия получаемых параметров.

Змінено користувачем ocbot
форматирование
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.