Open serjiomati opened 7 years ago
Спасибо за фидбек Да, ближайшее время
Тоже присоединяюсь. Обновите, пожалуйста, для последней версии.
А планируете ли вы как-то решить проблему с перекидыванием на страницу success при отмене оплаты на сайте liqpay? Жму оплатить заказ, перекидывает на Ликпей, жму Отмена оплаты, перекидывает на сайт, пишет, спасибо заказ оплачен, или если денег на карте не было, тоже самое.. Ну не серьезно как-то ((
Спасибо за отзывы <А планируете ли вы как-то решить проблему с перекидыванием на страницу success при отмене оплаты на сайте liqpay? Жму оплатить заказ, перекидывает на Ликпей, жму Отмена оплаты, перекидывает на сайт, пишет, спасибо заказ оплачен, или если денег на карте не было, тоже самое.. Ну не серьезно как-то ((> Обратите внимание, что когда жмете кнопку "назад", "отмена" и т.д. - используется result_url - вы его указываете в настройках чекаута. И там же есть настройка, с помощью которой вы можете себе отправить дополнительные data при редиректе. И можете сами анализировать результат транзакции, или действий пользователя на чекауте.
dpzz, вы серьезно полагаете, что сделать то, что вы описали сможет каждый пользователь Opencart? На одном из форумов предожили такую правку внести, просьба посмотреть код:
Замените в файле liqpay_checkout.php на это
class ControllerPaymentLiqPayCheckout extends Controller {
public function index() {
$data['button_confirm'] = $this->language->get('button_confirm');
$order_id = $this->session->data['order_id'];
$this->load->model('checkout/order');
$order_info = $this->model_checkout_order->getOrder($order_id);
$version = '3';
$description = 'Order #'.$order_id;
$result_url = $this->url->link('payment/liqpay_checkout/renderstatus', '', 'SSL');
$server_url = $this->url->link('payment/liqpay_checkout/callback', '', 'SSL');
$private_key = $this->config->get('liqpay_checkout_signature');
$public_key = $this->config->get('liqpay_checkout_merchant');
$action = 'pay';
$currency = $order_info['currency_code'];
if ($currency == 'RUR') { $currency = 'RUB'; }
$amount = $this->currency->format(
$order_info['total'],
$order_info['currency_code'],
$order_info['currency_value'],
false
);
$pay_way = $this->config->get('liqpay_checkout_pay_way');
$language = $this->config->get('liqpay_checkout_language');
$send_data = array('version' => $version,
'public_key' => $public_key,
'amount' => $amount,
'currency' => $currency,
'description' => $description,
'order_id' => $order_id,
'action' => $action,
'language' => $language,
'server_url' => $server_url,
'result_url' => $result_url);
$pay_way = $this->config->get('liqpay_checkout_pay_way');
if(isset($pay_way)){
$send_data['pay_way'] = $pay_way;
}
$liqpay_data = base64_encode(json_encode($send_data));
$liqpay_signature = base64_encode(sha1($private_key.$liqpay_data.$private_key, 1));
$data['data'] = $liqpay_data;
$data['signature'] = $liqpay_signature;
$data['action'] = $this->config->get('liqpay_checkout_api');
$this->language->load('payment/checkout_liqpay'); // грубо говоря это путь к файлу, как и маршрут, только для языка
$data['text_header'] = $this->language->get('text_header');
$data['text_instruction'] = $this->language->get('text_instruction');
if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/payment/liqpay_checkout.tpl')) {
return $this->load->view($this->config->get('config_template') . '/template/payment/liqpay_checkout.tpl', $data);
} else {
return $this->load->view('default/template/payment/liqpay_checkout.tpl', $data);
}
}
public function renderstatus() {
if ( $this->request->post ) {
$data = $this->request->post['data'];
$parsed_data = json_decode(base64_decode($data), true);
if($parsed_data['status'] == 'success')
$this->response->redirect($this->url->link('checkout/success', '', 'SSL'));
else
$this->response->redirect($this->url->link('checkout/failure', '', 'SSL'));
} else {
$this->response->redirect($this->url->link('checkout/failure', '', 'SSL'));
}
}
public function callback() {
$data = $this->request->post['data'];
$signature = base64_encode(sha1($this->config->get('liqpay_checkout_signature') . $data . $this->config->get('liqpay_checkout_signature'), true));
$parsed_data = json_decode(base64_decode($data), true);
$order_id = $parsed_data['order_id'];
if ($signature == $this->request->post['signature']) {
$this->load->model('checkout/order');
$status = $parsed_data['status'];
//$this->model_checkout_order->addOrderHistory($order_id, $this->config->get('config_order_status_id'));
if( $status == 'success')
$this->model_checkout_order->addOrderHistory($order_id, $this->config->get('liqpay_checkout_order_status_id'), 'Заказ оплачен, ожидайте отправки');
else if ( $status == 'failure' || $status == 'error')
$this->model_checkout_order->addOrderHistory($order_id, '10', 'Оплата не завершена ' . $parsed_data['err_description']);
//here you can update your order status
}
}
}
Моя версия расширения для работы с опенкарт 2.3 и используется liqpay api 3.0 https://github.com/semaster/opencart-liqpay
данный модуль перезаписывает файлы идущего в стандартной поставке модуля, также в настройках модуля добавлен режим приема оплат - тестовый или рабочий. Для того чтобы оплаченный заказ автоматически обозначался оплаченным нужно просто в настройках модуля выбрать какой статус присваивать после получения подтверждения от ликпей.
semaster, для Ocstore 2.1 ваша версия подходит? Не хватало в этом модуле тестового режима. и как с формированием заказа при нажатии кнопки Отмена на странице оплаты? Заказ оформляется или сбрасывается?
для Ocstore 2.1 не подойдет - насколько я поверхностно глянул - там другая структура размещения файлов. По поводу нажатия "отмена" на странице оплаты - добавил в настройках поле для задания статуса заказа в случае отмены оплаты.
Здравствуйте,semaster спасибо за модуль, Но есть вопрос почему то, при удачной оплате, ставит статус выбранный для не удачной оплаты
Добрый день. Это решение можно использовать? Когда будет модуль для 2,3? semaster commented on 23 Nov 2016 • edited Моя версия расширения для работы с опенкарт 2.3 и используется liqpay api 3.0 https://github.com/semaster/opencart-liqpay
данный модуль перезаписывает файлы идущего в стандартной поставке модуля, также в настройках модуля добавлен режим приема оплат - тестовый или рабочий. Для того чтобы оплаченный заказ автоматически обозначался оплаченным нужно просто в настройках модуля выбрать какой статус присваивать после получения подтверждения от ликпей.
bitrixlviv, можно использовать. Sergij4, зайдите в настройки модуля "Модули/Расширения ->Оплата->Liqpay" нажмите редактировать и выберите нужные статусы для успешной оплаты и для отмены.
Сделал Pull Request с поддержкой 2.3.2 + пофиксил несколько багов. Кто хочет может сейчас склонировать с моей репы. https://github.com/CROSP/plugin-opencart Папку payment рядом с extension (во всех каталогах) можно не копировать, это для версий 1.5.Х. Или же проще всего клонируйте с новой ветки 2.3.х https://github.com/CROSP/plugin-opencart/tree/2.3.x
Желательно это все упорядочить по тегам (верия = тег), чтобы не все в одной куче было. Если надо могу сделать
Где-то есть вменяемый модуль Liqpay для Opencart 2.1.0.2 где не нужно прыгать с бубном?
Народ, у меня OcStore 2.3.0.2.3 установил сперва оригинальный модуль, когда понял что есть проблема с отменой платежа, начал ставить два других модуля из этой ветки но и в них проблема осталась. Перепробовал уже все способы и в настройках акаунта выставлял принудительный редирект на главную страницу сайта, все равно при отмене платежа меня перекидывает на checkout/success, типа успешный заказ и все такое, но при этом сам заказа в списке заказов не появляется.
Кто-то может, не бесплатно, исправить это и сделать чтобы при отмене платежа пользователя перекидывало обратно в корзину?
https://opencartforum.com/files/file/5648-liqpay-redirekt-na-checkoutfailure/ При отмене заказа идет редирект на checkout/failure, товары остаются в корзине.
Спасибо
чт, 10 мая 2018 г., 10:50 ViktorTassen notifications@github.com:
https://opencartforum.com/files/file/5648-liqpay-redirekt-na-checkoutfailure/ При отмене заказа идет редирект на checkout/failure, товары остаются в корзине.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/liqpay/plugin-opencart/issues/10#issuecomment-387980161, or mute the thread https://github.com/notifications/unsubscribe-auth/AhJ90RS2w3KEFm21il6f9jR4LKKymmflks5tw_FdgaJpZM4KGDF1 .
Что там по поводу модуля для 2.3.x, как я вижу есть бренча дев
Что там по поводу модуля для 2.3.x, как я вижу есть бренча дев Попробуйте этот релиз, возможно, он подойдет https://github.com/liqpay/plugin-opencart/tree/2.3.x Также сейчас мы работаем над тем, чтобы обновить модули для всех версий популярных CMS
Чи буде модуль для версії 2.3.0.2?