Перейти к содержанию
Официальный форум поддержки Simpla

Проблема с Liqpay, проблема после(!) оплаты


Рекомендуемые сообщения

Настроил id мерчанта, на сайте liqpay настроил магазин, там вроде всё ок. Через сайт сделал тестовый товар с ценой 1 грн. выбрал способ оплаты liqpay, далее, далее, далее, оплатил, ввёл данные карты, пришёл код в смс, ввёл его, затем ввёл 3d код, который тоже пришёл в смс, затем идёт загрузка и в итоге полностью белый экран, без каких-либо ошибок, а в строке адреса "...мой магазин.ком.юа/payment/Liqpay/callback.php " дальше не знаю как и что, помогите донастроить эту оплату

значёк во вкладке браузера такой
https://www.dropbox.com/s/v5z6ql1r3iw8pib/liqpay.jpg

Ссылка на сообщение
Поделиться на другие сайты

На сайте Liqpay, в выписках по мерчанту, статус этого платёжа "отменён". Помогите настроить оплату через этот liqpay

Ссылка на сообщение
Поделиться на другие сайты

Содержание php файла, который в строке адреса после оплаты такое -


Notice: Undefined index: operation_xml in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 20Notice: Undefined index: signature in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 21Notice: Undefined offset: 1 in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 83Notice: Undefined offset: 1 in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 83Notice: Undefined offset: 1 in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 83Notice: Undefined offset: 1 in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 83Notice: Undefined offset: 1 in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 83
Ссылка на сообщение
Поделиться на другие сайты

Содержание файла, который находится в "payment/Liqpay/callback.php" не редактировал -

<?php/** * Simpla CMS * * @copyright 	2011 Denis Pikusov * @link 		http://simplacms.ru * @author 		Denis Pikusov * * К этому скрипту обращается Liqpay в процессе оплаты * */// Работаем в корневой директорииchdir ('../../');require_once('api/Simpla.php');$simpla = new Simpla();$xml = base64_decode($_POST['operation_xml']);$signature = $_POST['signature'];// Выбираем из xml нужные данные$order_id      = intval(get_tag_val($xml, 'order_id'));$merchant_id   = get_tag_val($xml, 'merchant_id'); $amount        = get_tag_val($xml, 'amount'); $currency_code = get_tag_val($xml, 'currency'); $status        = get_tag_val($xml, 'status'); if($status !== 'success')	exit();////////////////////////////////////////////////// Выберем заказ из базы////////////////////////////////////////////////$order = $simpla->orders->get_order(intval($order_id));if(empty($order))	die('Оплачиваемый заказ не найден'); ////////////////////////////////////////////////// Выбираем из базы соответствующий метод оплаты////////////////////////////////////////////////$method = $simpla->payment->get_payment_method(intval($order->payment_method_id));if(empty($method))	die("Неизвестный метод оплаты");	$settings = unserialize($method->settings);$payment_currency = $simpla->money->get_currency(intval($method->currency_id));// Проверяем контрольную подпись$mysignature = base64_encode(sha1($settings['liqpay_sign'].$xml.$settings['liqpay_sign'],1));if($mysignature !== $signature)	die("bad sign");// Нельзя оплатить уже оплаченный заказ  if($order->paid)	die('Этот заказ уже оплачен');if($amount != round($simpla->money->convert($order->total_price, $method->currency_id, false), 2) || $amount<=0)	die("incorrect price");	if($currency_code != $payment_currency->code)	die("incorrect currency");	       // Установим статус оплачен$simpla->orders->update_order(intval($order->id), array('paid'=>1));// Отправим уведомление на email$simpla->notify->email_order_user(intval($order->id));$simpla->notify->email_order_admin(intval($order->id));// Спишем товары  $simpla->orders->close(intval($order->id));// Перенаправим пользователя на страницу заказаheader('Location: '.$simpla->request->root_url.'/order/'.$order->url);exit();function get_tag_val($xml, $name){	preg_match("/<$name>(.*)<\/$name>/i", $xml, $matches);	return trim($matches[1]); }
Ссылка на сообщение
Поделиться на другие сайты

Была не активирована карта для оплаты через интернет. НО! Как можно сделать так, что если карта не активирована, т.е. когда liqpay не возвращает operation_xml и signature, чтобы перенаправляло на страницу, на которой будет указано, что "карта не активирована, обратитесь в банк для активации"?

Ссылка на сообщение
Поделиться на другие сайты

после:
$xml = base64_decode($_POST['operation_xml']);
$signature = $_POST['signature'];

добавь:

if(!isset($xml))
die("Карта не активирована, обратитесь в банк для активации");

if(!isset($signature))
die("Не получена контрольная подпись");

но в первом случае это может быть не только не активированная карта, но и проблемы на стороне liqpay, симплы и тд

от liqpay могут прийти вот такие ответы:
api_version incorrect – Установлена неправильная версия в настройках мерчанта
hour_count_limit_exceed – Превышен лимит операций в час
day_count_limit_exceed – Превышен лимит операций в сутки
ip_not_trusted – IP не в списке доверия(настройки мерчанта)
signature_error – Ошибка подписи
not_enough_money - Недостаточно денег
no_such_merchant - Некорректный merchant_id
order_id_repeat – Повторение order_id
wrong_to_phone – Неправильный телефон назначения

среди них ошибки о не активированной карте нет, так что это не отследить

Ссылка на сообщение
Поделиться на другие сайты

Добавил

if(!isset($xml))
die("Карта не активирована, обратитесь в банк для активации");

if(!isset($signature))
die("Не получена контрольная подпись");



теперь строки ответа сократились до двух

Notice: Undefined index: operation_xml in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 20Notice: Undefined index: signature in /home/kupitrus/kupitrusi.com.ua/www/payment/Liqpay/callback.php on line 21Не получена контрольная подпись
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...