Здравствуйте, уважаемые участники форума!
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>";
}
Код взял отсюда:
Заранее всем очень благодарен!