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

Кнопка отложенной оплаты в Истории заказов


Recommended Posts

Здравствуйте, уважаемые участники форума!

 

Opencart / ocStore 2.3.x

Задумался о возможности создания кнопки "Оплатить" - отложенная оплата, после подтверждения заказа (например). Это очень нужная и полезная функция, поэтому не понимаю, почему ее еще никто до сих пор не реализовал для Opencart. Понимаю, что есть готовые модули, привязанные к определенным платежным системам, но это достаточно гиморно, особенно если учесть, что часто эти модули работают не корректно и каждый приходится донастраивать и исправлять ошибки несовместимости скриптов. Поэтому, хотелось бы просто создать кнопочку напротив заказа в Истории заказов, которая бы формировала счет, а далее перенаправляла на любую платежную систему, установленную на сайте. Можно сделать, чтобы она появлялась при определенном статусе заказа или была постоянно.

 

Т.е. нужно создать кнопочку "Оплатить" на страничке "История заказов" и страничку формирования счета для онлайн-оплаты, с которой переадресовывать на страничку платежной системы, выбранной заказчиком при заказе или администратором из админ-панели, ну или какую-либо одну конкретную платежную систему (примерный код представил ниже). А также сделать возможность выводить эту кнопочку только при статусе заказа "Ожидание" (например).

 

Я нашел на этом форуме похожую реализацию (для какой-либо одной платежной системы), но как этот код применить (что-куда вставлять и что-где дописать) без ошибок для моей задачи (например, под модуль Тинькофф) - ума у меня не хватает... Если кто-нибудь поможет, то буду очень признателен:

 

if (isset($this->session->data['order_id'])) {

$this->cart->clear();

 

// Сохраняем данные заказа в локальные переменные, для последующей передачи в платёжную систему

$need_redirect = $this->session->data["payment_method"]["code"];

$sum_order = $this->session->data['all_sum'];

$oderidnow = $this->session->data['order_id'];

// Окончание сохранения данных

 

unset($this->session->data['shipping_method']);

unset($this->session->data['shipping_methods']);

unset($this->session->data['payment_method']);

unset($this->session->data['payment_methods']);

unset($this->session->data['guest']);

unset($this->session->data['comment']);

unset($this->session->data['order_id']);

unset($this->session->data['coupon']);

unset($this->session->data['reward']);

unset($this->session->data['voucher']);

unset($this->session->data['vouchers']);

unset($this->session->data['salon']);

}

 

// Подготавливаем сумму заказа, в необходимом для платёжной системы формате

$sum_order = str_replace(" руб.", "", $sum_order);

$sum_order = str_replace(" ", "", $sum_order);

$sum_order = $sum_order.".00";

 

// Если был выбран пункт "Оплата картой на сайте" - редиректим клиента на платёжную систему, передавая все необходимые данные. Звёздочки - это данные от платёжной системы, выдаваемые при регистрации

if ($need_redirect == "cos") {

$hashmd5 = md5("MerchantId=*****&OrderId=$oderidnow&Amount=$sum_order&Currency=RUB&PrivateSecurityKey=**********");

echo "<script type=\"text/javascript\">location = 'https://secure.payonlinesystem.com/ru/payment/?MerchantId=*****&OrderId=$oderidnow&Amount=$sum_order&Currency=RUB&SecurityKey=$hashmd5';</script>";

}

 

Код взял отсюда:  

 

 

Заранее всем очень благодарен!

 

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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