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

Не корректно работает Liqpay


Dimdimych

Recommended Posts

Кто знает решение вопроса, ПОМОГИТЕ! Установил модуль оплаты liqpay и когда при оформлении выдает ошибку и возвращает в магазин - все равно выдается сообщение об успешной покупке! Соответственно клиен при оплате картой через liqpay мог и не заметить сообщение с ошибкой платежа, а когда его автоматически возвращает в магазин - там сообщение об успешной сделке!!!

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


в коннтроллере замени функцию на:

public function callback() {
  $xml = base64_decode($this->request->post['operation_xml']);
  $signature = base64_encode(sha1($this->config->get('liqpay_signature') . $xml . $this->config->get('liqpay_signature'), TRUE));
 
  $posleft = strpos($xml, 'order_id');
  $posright = strpos($xml, '/order_id');
 
  $order_id = substr($xml, $posleft + 9, $posright - $posleft - 10);
  $posleft = strpos($xml, 'status');
			    $posright = strpos($xml, '/status');
			    $is_success = substr($xml, $posleft + 7, $posright - $posleft - 8);
  $fhliqpaylog = fopen("system/logs/liqpaylog.txt", "a");
  fwrite ($fhliqpaylog, "------------BEGIN-DEBUG-CALLBACK-----------n");
  fwrite ($fhliqpaylog,"Order_id=" . $order_id . "n" ."XML=" . $xml . "n" . "Our sign=" . $signature . "n" . "Liqpaysign=" . $this->request->post['signature'] . "n" . "Result=" . $is_success. "n");
 
  if ($signature == $this->request->post['signature'] and $is_success == "success") {
   $this->load->model('checkout/order');

   $this->model_checkout_order->confirm($order_id, $this->config->get('config_order_status_id'));  
  }
}
и выставь права на запись в папке логов... там же смотри ошибки после трансакций...
Надіслати
Поділитися на інших сайтах

в коннтроллере замени функцию на:

public function callback() {
  $xml = base64_decode($this->request->post['operation_xml']);
  $signature = base64_encode(sha1($this->config->get('liqpay_signature') . $xml . $this->config->get('liqpay_signature'), TRUE));

  $posleft = strpos($xml, 'order_id');
  $posright = strpos($xml, '/order_id');

  $order_id = substr($xml, $posleft + 9, $posright - $posleft - 10);
  $posleft = strpos($xml, 'status');
				$posright = strpos($xml, '/status');
				$is_success = substr($xml, $posleft + 7, $posright - $posleft - 8);
  $fhliqpaylog = fopen("system/logs/liqpaylog.txt", "a");
  fwrite ($fhliqpaylog, "------------BEGIN-DEBUG-CALLBACK-----------n");
  fwrite ($fhliqpaylog,"Order_id=" . $order_id . "n" ."XML=" . $xml . "n" . "Our sign=" . $signature . "n" . "Liqpaysign=" . $this->request->post['signature'] . "n" . "Result=" . $is_success. "n");

  if ($signature == $this->request->post['signature'] and $is_success == "success") {
   $this->load->model('checkout/order');

   $this->model_checkout_order->confirm($order_id, $this->config->get('config_order_status_id'));  
  }
}
и выставь права на запись в папке логов... там же смотри ошибки после трансакций...
во как.. а проверять сумму не надо?
Надіслати
Поділитися на інших сайтах

Так пробле ма ж со статусом заказа... это как болит зуб, пошли в поликлинику, заодно и кардиограмму сделали :-D

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

Так пробле ма ж со статусом заказа... это как болит зуб, пошли в поликлинику, заодно и кардиограмму сделали :-D

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

не. это как врач видит у что у пациента нож торчит из спины, но больной то зуб пришел лечить.. :ugeek:

или к психоаналитику пришел с душевной проблемой "теща достала", заодно и "комплексы раннего детства" подлечили :eek:

Тут разве что после той функции, добавить ещё одну...

public function checkpay() {
  $this->load->model('checkout/order');
 
  $order_info = $this->model_checkout_order->getOrder($this->session->data['order_id']);
  if ($order_info['order_status_id'] ==  $this->config->get('config_order_status_id')) {
   $this->redirect(HTTPS_SERVER . 'index.php?route=checkout/success');
				 return TRUE;
  } else {
   $this->redirect(HTTPS_SERVER . 'index.php?route=checkout/payment');
   return TRUE;
  }
 
}
Надіслати
Поділитися на інших сайтах

  • 1 month later...
  • 11 months later...

Что есть:

Если у покупателя не хватило денег то:

1) Возвращается в магазин и видим "Заказ успешно оформлен"

2) Создаётся заказ со статусом "отменено" 

 

Что хотелось бы:

 

Вариант 1:

 

Видим сообщение (метод реализации не важен) что "Оплата была не успешна" и кнопка "вернутся к оформлению заказа"

Заказ не создан 

 

 

Вариант 2:

 

Видим сообщение (метод реализации не важен) что "Оплата была не успешна" и кнопка "Перейти к списку заказов" (переброс на личную страничку) для зарегистрированых

 

Заказ создан со статусом "Ожидание оплаты"

Напротив заказа имеем 3 кнопки "Оплатить"  "Сменить способ оплаты"  "Отменить заказ"

 

 

или

Видим сообщение (метод реализации не важен) что "Оплата была не успешна" и кнопка "вернутся к оформлению заказа"  для не зарегистрированых

Заказ не создан 

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


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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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